--- title: DOMTokenList slug: Web/API/DOMTokenList tags: - API - DOM - DOMTokenList - Interface - Reference - インターフェイス translation_of: Web/API/DOMTokenList ---
{{APIRef("DOM")}}

DOMTokenList インターフェイスは、スペースで区切られたトークンのセットを表します。こうしたセットは {{domxref("Element.classList")}}、 {{domxref("HTMLLinkElement.relList")}}、 {{domxref("HTMLAnchorElement.relList")}}、 {{domxref("HTMLAreaElement.relList")}},、{{domxref("HTMLIframeElement.sandbox")}}、 {{domxref("HTMLOutputElement.htmlFor")}} 等から返されるものです。インデックスは JavaScript の {{jsxref("Array")}} オブジェクトのように 0 から始まります。 DOMTokenList は常に大文字と小文字を区別します。

プロパティ

{{domxref("DOMTokenList.length")}} {{ReadOnlyInline}}
integer で、このオブジェクトに格納されているオブジェクトの数を表します。
{{domxref("DOMTokenList.value")}}
リストの値を {{domxref("DOMString")}} で表したものです。

メソッド

{{domxref("DOMTokenList.item()")}}
リスト内の項目をインデックス指定で返します (数値がリストの長さ以上であれば、 undefined を返します)。
{{domxref("DOMTokenList.contains()")}}
指定されたトークンがリストに含まれていれば true を返し、そうでなければ falseを返します。
{{domxref("DOMTokenList.add()")}}
指定されたトークンをリストに追加します。
{{domxref("DOMTokenList.remove()")}}
指定されたトークンをリストから削除します。
{{domxref("DOMTokenList.replace()")}}
既存のトークンを新しいトークンで置き換えます。
{{domxref("DOMTokenList.supports()")}}
指定されたトークンが、関連付けられた属性で対応しているトークンであれば true を返します。
{{domxref("DOMTokenList.toggle()")}}
指定されたトークンをリストから削除して false を返します。指定されたトークンが存在しなければ、リストに追加して true を返します。
{{domxref("DOMTokenList.entries()")}}
このオブジェクト内に含まれるすべてのキーと値のペアを反復処理することができる {{jsxref("Iteration_protocols","iterator")}} を返します。
{{domxref("DOMTokenList.forEach()")}}
DOMTokenList オブジェクトの各要素に対して、指定した関数を実行します。
{{domxref("DOMTokenList.keys()")}}
このオブジェクト内に含まれるすべてのキーと値のペアのうちキーを反復処理することができる {{jsxref("Iteration_protocols", "iterator")}} を返します。
{{domxref("DOMTokenList.values()")}}
このオブジェクト内に含まれるすべてのキーと値のペアのうち値を反復処理することができる {{jsxref("Iteration_protocols", "iterator")}} を返します。

以下の簡単な例では、 {{htmlelement("p")}} 要素のクラスのリストを {{domxref("Element.classList")}} を使用して DOMTokenList として受け取り、 {{domxref("DOMTokenList.add()")}} を使用してクラスを1つ追加し、最後に <p> の {{domxref("Node.textContent")}} が DOMTokenList と等しくなるように更新します。

まず、 HTML は以下のとおりです。

<p class="a b c"></p>

そして JavaScript です。

var para = document.querySelector("p");
var 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>
var span = document.querySelector("span");
var 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")}}

関連情報