aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMasahiro FUJIMOTO <mfujimot@gmail.com>2022-02-15 03:00:20 +0900
committerpotappo <potappo@gmail.com>2022-02-19 16:30:31 +0900
commitfa918be3a99e10026f2ce7f1d463391f97fd62bb (patch)
tree205b7f76101fe6ec6d7580da182f6241974a5dae
parent21d3adcde768d1b8eba07dcf85d2dd7927a0e506 (diff)
downloadtranslated-content-fa918be3a99e10026f2ce7f1d463391f97fd62bb.tar.gz
translated-content-fa918be3a99e10026f2ce7f1d463391f97fd62bb.tar.bz2
translated-content-fa918be3a99e10026f2ce7f1d463391f97fd62bb.zip
2022/02/02 時点の英語版に同期
-rw-r--r--files/ja/web/api/htmlelement/dataset/index.md180
1 files changed, 76 insertions, 104 deletions
diff --git a/files/ja/web/api/htmlelement/dataset/index.md b/files/ja/web/api/htmlelement/dataset/index.md
index bfdcffc940..fa97cce7ed 100644
--- a/files/ja/web/api/htmlelement/dataset/index.md
+++ b/files/ja/web/api/htmlelement/dataset/index.md
@@ -5,85 +5,82 @@ tags:
- API
- HTML DOM
- HTMLElement
- - HTMLElement
- - Property
- - Read-only
- - Reference
- - SVG
- - SVG Custom Attributes
- - SVG2
- - SVGElement
- - dataset
- プロパティ
- - 読取専用
+ - 読み取り専用
+ - リファレンス
+ - dataset
+browser-compat: api.HTMLElement.dataset
translation_of: Web/API/HTMLElement/dataset
---
-<div>{{APIRef("HTML DOM")}}</div>
+{{APIRef("HTML DOM")}}
+
+**`dataset`** は {{DOMxRef("HTMLElement")}} インターフェイスの読み取り専用プロパティで、要素に設定されたすべての[カスタムデータ属性](/ja/docs/Web/HTML/Global_attributes/data-*) (`data-*`) への読み取り/書き込みアクセスを提供します。これは文字列のマップである ({{domxref("DOMStringMap")}}) で、それぞれの `data-*` 属性の項目です。
+
+> **Note:** `dataset` プロパティ自体は読み取ることができますが、直接書き込むことはできません。代わりに、すべての書き込みは `dataset` 内の個々のプロパティに対して行う必要があり、それは data 属性を表します。
+
+また、 HTML の `data-*` 属性とそれに対応する DOM `dataset.プロパティ` は同じ名前にはなりませんが、次のように常に近いものになります。
+
+- HTML では
+ - : 属性の名前は、 `data-` で始まります。文字、数字、ダッシュ (`-`)、ドット (`.`)、コロン (`:`)、アンダースコア (`_`) のみを入れることができます。 ASCII 大文字の `A` から `Z` は小文字に変換されます。
+- JavaScript では
+ - : カスタムデータ属性のプロパティ名は、同じ HTML 属性の名前から `data-` の接頭辞を除いたものですが、そのプロパティのキャメルケース (camelCase) の名前であり、単一のダッシュ (`-`) を除いたものです。
-<p><span class="seoSummary"><strong><code>dataset</code></strong> は {{DOMxRef("HTMLElement")}} インターフェイスのプロパティで、要素に設定されたすべての<a href="/ja/docs/Web/HTML/Global_attributes#attr-data-*">カスタムデータ属性</a> (<code>data-*</code>) への読み取り/書き込みアクセスを提供します。</span> このアクセスは、 HTML と DOM の両方の中で利用できます。これは {{domxref("DOMString")}} のマップ ({{domxref("DOMStringMap")}}) で、1つのカスタムデータ属性が1つのエントリに対応します。なお、 <code>dataset</code> プロパティ自体は読み取ることができますが、直接書き込むことはできません。代わりに、すべての書き込みは <code>dataset</code> 内の個々のプロパティに対して行われる必要があり、それはデータ属性を表します。また、 HTML の <strong><code>data-</code></strong><em>属性</em>とそれに対応する DOM <code>dataset.</code><em>プロパティ</em> は同じ名前を共有しませんが、次のように常に近いものになります。</p>
+以下の情報に加えて、[データ属性の使用](/ja/docs/Learn/HTML/Howto/Use_data_attributes)の記事に、HTML データ属性の使用方法に関するガイドがあります。
-<ul>
- <li>HTML のカスタムデータ属性の名前は、 <code>data-</code> で始まります。 文字、数字、およびダッシュ (<code>-</code>)、ドット (<code>.</code>)、コロン (<code>:</code>)、アンダースコア (<code>_</code>) のみを含める必要がありますが、 ASCII 大文字の <code>A</code> から <code>Z</code> は使用できません。</li>
- <li>JavaScript のカスタムデータ属性の名前は、同じ HTML 属性の名前ですが、キャメルケース (camelCase) であり、ダッシュ、ドットなどは含みません。</li>
-</ul>
+### 名前の変換
-<p>以下の情報に加えて、<a href="/ja/docs/Learn/HTML/Howto/Use_data_attributes">データ属性の使用</a>の記事に、HTML データ属性の使用方法に関するガイドがあります。</p>
+- ダッシュスタイルからキャメルケースへの変換
-<h3 id="Name_conversion" name="Name_conversion">名前変換</h3>
+ - : カスタムデータ属性名は、次のルールに従って {{ domxref("DOMStringMap") }} 項目のキーに変換されます。
-<p><strong>ダッシュスタイルからキャメルケースへ:</strong> カスタムデータ属性名は、次のルールに従って {{ domxref("DOMStringMap") }} エントリのキーに変換されます。</p>
+ 1. すべての ASCII の大文字 (`A` から `Z` まで) を小文字にします。
+ 2. 接頭辞の `data-` を(ダッシュを含め)削除します。
+ 3. ダッシュ (`U+002D`) に ASCII 小文字の `a` から `z` が続く場合、ダッシュを削除し、その文字を対応する大文字に変換します。
+ 4. 他の文字 (他のダッシュを含む) は変更しません。
-<ul>
- <li>プレフィックスの <code>data-</code> が (ダッシュを含め) 削除されます。</li>
- <li>ダッシュ (<code>U+002D</code>) に ASCII 小文字の <code>a</code> から <code>z</code> が続く場合、ダッシュは削除され、文字は対応する大文字に変換されます。</li>
- <li>他の文字 (他のダッシュを含む) は変更されません。</li>
-</ul>
+- キャメルケースからダッシュスタイルへの変換
-<p><strong>キャメルケースからダッシュスタイルへ:</strong> キーを属性名にマッピングする逆の変換では、次のルールが使用されます。</p>
+ - : キーを属性名にマッピングする逆の変換では、以下のように次のルールが使用されます。
-<ul>
- <li>制約事項: ダッシュの直後に ASCII 小文字 <code>a</code> から <code>z</code> を続けてはなりません (変換前)。</li>
- <li>接頭辞として <code>data-</code> が追加されます。</li>
- <li>ASCII 大文字の <code>A</code> から <code>Z</code> は、ダッシュと、その後に対応する小文字が続くものに変換されます。</li>
- <li>他の文字は変更されません。</li>
-</ul>
+ 1. **制約事項:** 変換前に置いて、ダッシュの直後に ASCII 小文字 `a` から `z` を続けてはなりません。
+ 2. 接頭辞として `data-` が追加されます。
+ 3. ASCII 大文字の `A` から `Z` は、ダッシュと、その後に対応する小文字が続くものに変換されます。
+ 4. 他の文字は変更しません。
-<p>上記の規則の制約事項により、2つの変換が互いに逆変換になります。</p>
+例えば、`data-abc-def` という名前の属性は、キー `abcDef` に対応します。
-<p>例えば、<code>data-abc-def</code> という名前の属性は、キー <code>abcDef</code> に対応します。</p>
+### 値へのアクセス
-<ul>
-</ul>
+- 属性は dataset のオブジェクトプロパティのようにキャメルケース名 (キー) を使用して、 `element.dataset.keyname` のように設定したり読み取ったりすることができます。
+- 属性はブラケット構文を使用して、 `element.dataset['keyname']` のように設定したり読み取ったりすることもできます。
+- [`in` 演算子](/ja/docs/Web/JavaScript/Reference/Operators/in)を使用して、特定の属性が存在するかどうかを確認できます。
-<h3 id="Accessing_values" name="Accessing_values">値へのアクセス</h3>
+### 値の設定
-<ul>
- <li>属性は dataset のオブジェクトプロパティのようにキャメルケース名 (キー) を使用して、 <code><em>element.</em>dataset.<em>keyname</em></code> のように設定したり読み取ったりすることができます。</li>
- <li>属性はブラケット構文を使用して、 <code><em>element.</em>dataset[<em>keyname</em>]</code> のように設定したり読み取ったりすることもできます。</li>
- <li><a href="/ja/docs/Web/JavaScript/Reference/Operators/in"><code>in</code> 演算子</a>を使用して、特定の属性が存在するかどうかを確認できます。</li>
-</ul>
+- 属性が設定されると、その値は常に文字列に変換されます。
-<h3 id="Setting_values" name="Setting_values">値の設定</h3>
+ 例えば、 `element.dataset.example = null` は `data-example="null"` に変換されます。
-<ul>
- <li>属性が設定されると、その値は常に文字列に変換されます。 例えば、<code>null</code> は文字列 "null" に変換されます。</li>
- <li>属性を削除する場合は、<a href="/ja/docs/Web/JavaScript/Reference/Operators/delete"><code>delete</code> 演算子</a>を使用できます。</li>
-</ul>
+- 属性を削除する場合は、[`delete` 演算子](/ja/docs/Web/JavaScript/Reference/Operators/delete)を使用できます。
-<h2 id="Syntax" name="Syntax">構文</h2>
+## 構文
-<pre class="syntaxbox">const <em>dataAttrMap</em> = <em>element</em>.dataset
-</pre>
+```js
+const dataAttrMap = element.dataset
+```
-<h3 id="Value" name="Value">値</h3>
+### 値
-<p>{{domxref("DOMStringMap")}} です。</p>
+{{domxref("DOMStringMap")}} です。
-<h2 id="Examples" name="Examples">例</h2>
+## 例
-<pre class="brush: html">&lt;div id="user" data-id="1234567890" data-user="johndoe" data-date-of-birth&gt;John Doe&lt;/div&gt;</pre>
+```html
+<div id="user" data-id="1234567890" data-user="johndoe" data-date-of-birth>John Doe</div>
+```
-<pre class="brush: js">const el = document.querySelector('#user');
+```js
+const el = document.querySelector('#user');
// el.id === 'user'
// el.dataset.id === '1234567890'
@@ -92,55 +89,30 @@ translation_of: Web/API/HTMLElement/dataset
// データ属性の設定
el.dataset.dateOfBirth = '1960-10-03';
-// 結果: el.dataset.dateOfBirth === 1960-10-03
+// JS での結果: el.dataset.dateOfBirth === '1960-10-03'
+// HTML での結果: <div id="user" data-id="1234567890" data-user="johndoe" data-date-of-birth="1960-10-03">John Doe</div>
delete el.dataset.dateOfBirth;
-// 結果: el.dataset.dateOfBirth === undefined
-
-// 'someDataAttr' in el.dataset === false
-el.dataset.someDataAttr = 'mydata';
-// 結果: 'someDataAttr' in el.dataset === true
-</pre>
-
-<h2 id="Specifications" name="Specifications">仕様書</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">仕様書</th>
- <th scope="col">状態</th>
- <th scope="col">備考</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('HTML WHATWG', "dom.html#dom-dataset", "HTMLElement.dataset")}}</td>
- <td>{{Spec2('HTML WHATWG')}}</td>
- <td>最新のスナップショットである {{SpecName('HTML5.1')}} から変更なし</td>
- </tr>
- <tr>
- <td>{{SpecName('HTML5.1', "dom.html#dom-dataset", "HTMLElement.dataset")}}</td>
- <td>{{Spec2('HTML5.1')}}</td>
- <td>{{SpecName('HTML WHATWG')}} のスナップショット、 {{SpecName('HTML5 W3C')}} からの変更なし</td>
- </tr>
- <tr>
- <td>{{SpecName('HTML5 W3C', "dom.html#dom-dataset", "HTMLElement.dataset")}}</td>
- <td>{{Spec2('HTML5 W3C')}}</td>
- <td>{{SpecName('HTML WHATWG')}} のスナップショット、初回定義</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>
-
-<p>{{Compat("api.HTMLElement.dataset")}}</p>
-
-<div class="hidden">Please change the compat macro's paramter to <code>api.HTMLElement.dataset</code> after BCD is updated.</div>
-
-<h2 id="See_also" name="See_also">関連情報</h2>
-
-<ul>
- <li>HTML の <code><a href="/ja/docs/Web/HTML/Global_attributes/data-*"><strong>data-*</strong></a></code> クラスのグローバル属性</li>
- <li><a href="/ja/docs/Learn/HTML/Howto/Use_data_attributes">データ属性の使用</a></li>
- <li>{{domxref("Element.getAttribute()")}} および {{domxref("Element.setAttribute()")}}</li>
-</ul>
+// JS での結果: el.dataset.dateOfBirth === undefined
+// HTML での結果: <div id="user" data-id="1234567890" data-user="johndoe">John Doe</div>
+
+if ('someDataAttr' in el.dataset === false) {
+ el.dataset.someDataAttr = 'mydata';
+ // JS での結果: 'someDataAttr' in el.dataset === true
+ // HTML での結果: <div id="user" data-id="1234567890" data-user="johndoe" data-some-data-attr = "mydata">John Doe</div>
+}
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- HTML の [`data-*`](/ja/docs/Web/HTML/Global_attributes/data-*) クラスのグローバル属性
+- [データ属性の使用](/ja/docs/Learn/HTML/Howto/Use_data_attributes)
+- {{DOMxRef("Element.getAttribute()")}} および {{DOMxRef("Element.setAttribute()")}}