--- 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.