--- title: HTMLOrForeignElement.dataset slug: Web/API/HTMLOrForeignElement/dataset tags: - API - HTML DOM - HTMLElement - HTMLOrForeignElement - Property - Read-only - Reference - SVG - SVG Custom Attributes - SVG2 - SVGElement - dataset - プロパティ - 読取専用 translation_of: Web/API/HTMLOrForeignElement/dataset ---
dataset
は {{DOMxRef("HTMLOrForeignElement")}} インターフェイスのプロパティで、要素に設定されたすべてのカスタムデータ属性 (data-*
) への読み取り/書き込みアクセスを提供します。 このアクセスは、 HTML と DOM の両方の中で利用できます。これは {{domxref("DOMString")}} のマップ ({{domxref("DOMStringMap")}}) で、1つのカスタムデータ属性が1つのエントリに対応します。なお、 dataset
プロパティ自体は読み取ることができますが、直接書き込むことはできません。代わりに、すべての書き込みは dataset
内の個々のプロパティに対して行われる必要があり、それはデータ属性を表します。また、 HTML の data-
属性とそれに対応する DOM dataset.
プロパティ は同じ名前を共有しませんが、次のように常に近いものになります。
data-
で始まります。 文字、数字、およびダッシュ (-
)、ドット (.
)、コロン (:
)、アンダースコア (_
) のみを含める必要がありますが、 ASCII 大文字の A
から Z
は使用できません。以下の情報に加えて、データ属性の使用の記事に、HTML データ属性の使用方法に関するガイドがあります。
ダッシュスタイルからキャメルケースへ: カスタムデータ属性名は、次のルールに従って {{ domxref("DOMStringMap") }} エントリのキーに変換されます。
data-
が (ダッシュを含め) 削除されます。U+002D
) に ASCII 小文字の a
から z
が続く場合、ダッシュは削除され、文字は対応する大文字に変換されます。キャメルケースからダッシュスタイルへ: キーを属性名にマッピングする逆の変換では、次のルールが使用されます。
a
から z
を続けてはなりません (変換前)。data-
が追加されます。A
から Z
は、ダッシュと、その後に対応する小文字が続くものに変換されます。上記の規則の制約事項により、2つの変換が互いに逆変換になります。
例えば、data-abc-def
という名前の属性は、キー abcDef
に対応します。
element.dataset.keyname
のように設定したり読み取ったりすることができます。element.dataset[keyname]
のように設定したり読み取ったりすることもできます。in
演算子を使用して、特定の属性が存在するかどうかを確認できます。null
は文字列 "null" に変換されます。delete
演算子を使用できます。const dataAttrMap = element.dataset
{{domxref("DOMStringMap")}} です。
<div id="user" data-id="1234567890" data-user="johndoe" data-date-of-birth>John Doe</div>
const el = document.querySelector('#user'); // el.id === 'user' // el.dataset.id === '1234567890' // el.dataset.user === 'johndoe' // el.dataset.dateOfBirth === '' // データ属性の設定 el.dataset.dateOfBirth = '1960-10-03'; // 結果: el.dataset.dateOfBirth === 1960-10-03 delete el.dataset.dateOfBirth; // 結果: el.dataset.dateOfBirth === undefined // 'someDataAttr' in el.dataset === false el.dataset.someDataAttr = 'mydata'; // 結果: 'someDataAttr' in el.dataset === true
仕様書 | 状態 | 備考 |
---|---|---|
{{SpecName('HTML WHATWG', "dom.html#dom-dataset", "HTMLElement.dataset")}} | {{Spec2('HTML WHATWG')}} | 最新のスナップショットである {{SpecName('HTML5.1')}} から変更なし |
{{SpecName('HTML5.1', "dom.html#dom-dataset", "HTMLElement.dataset")}} | {{Spec2('HTML5.1')}} | {{SpecName('HTML WHATWG')}} のスナップショット、 {{SpecName('HTML5 W3C')}} からの変更なし |
{{SpecName('HTML5 W3C', "dom.html#dom-dataset", "HTMLElement.dataset")}} | {{Spec2('HTML5 W3C')}} | {{SpecName('HTML WHATWG')}} のスナップショット、初回定義 |
{{Compat("api.HTMLElement.dataset")}}
api.HTMLOrForeignElement.dataset
after BCD is updated.