--- title: DOMTokenList slug: Web/API/DOMTokenList tags: - API - DOM - DOMTokenList - Interface - Reference - インターフェイス translation_of: Web/API/DOMTokenList ---
DOMTokenList
インターフェイスは、スペースで区切られたトークンのセットを表します。こうしたセットは {{domxref("Element.classList")}}、{{domxref("HTMLLinkElement.relList")}}、{{domxref("HTMLAnchorElement.relList")}}、{{domxref("HTMLAreaElement.relList")}}、{{domxref("HTMLIframeElement.sandbox")}}、{{domxref("HTMLOutputElement.htmlFor")}} 等から返されるものです。インデックスは JavaScript の {{jsxref("Array")}} オブジェクトのように 0
から始まります。 DOMTokenList
は常に大文字と小文字を区別します。
integer
で、このオブジェクトに格納されているオブジェクトの数を表します。index
の位置の項目を返します。 index
がそのリストの length
以上であれば undefined
を返します。token
がリストに含まれていれば true
を返し、そうでなければ false
を返します。token
をリストに追加します。token
をリストから削除します。token
を newToken
で置き換えます。token
が、関連付けられた属性で対応しているトークンであれば true
を返します。token
が存在すればリストから削除し、存在しなければ token
をリストに追加します。操作後にリスト内に token
が存在するかどうかを boolean で返します。DOMTokenList
オブジェクトの各要素に対して 1 回ずつ、指定した callback
関数を実行します。以下の簡単な例では、 {{htmlelement("p")}} 要素のクラスのリストを {{domxref("Element.classList")}} を使用して DOMTokenList
として受け取り、 {{domxref("DOMTokenList.add()")}} を使用してクラスを 1 つ追加し、最後に <p>
の {{domxref("Node.textContent")}} が DOMTokenList
と等しくなるように更新します。
まず、 HTML は以下のとおりです。
<p class="a b c"></p>
そして JavaScript です。
let para = document.querySelector("p"); let classes = para.classList; para.classList.add("d"); para.textContent = `paragraph classList is "${classes}"`;
出力結果はこのようになります。
{{ EmbedLiveSample('Examples', '100%', 60) }}
DOMTokenList
を編集するメソッド ({{domxref("DOMTokenList.add()")}} など) は、自動的にそのリストから余分な{{Glossary("Whitespace", "ホワイトスペース")}}をトリミングし、重複した値を削除します。例えば次のようになります。
<span class=" d d e f"></span>
let span = document.querySelector("span"); let classes = span.classList; span.classList.add("x"); span.textContent = `span classList is "${classes}"`;
出力結果はこのようになります。
{{ EmbedLiveSample('Trimming_of_whitespace_and_removal_of_duplicates', '100%', 60) }}
仕様書 | 状態 | 備考 |
---|---|---|
{{SpecName("DOM WHATWG", "#interface-domtokenlist", "DOMTokenList")}} | {{Spec2("DOM WHATWG")}} | 初回定義 |
{{Compat("api.DOMTokenList")}}