--- title: DOMTokenList slug: Web/API/DOMTokenList tags: - API - DOM - DOMTokenList - Interface - Renference translation_of: Web/API/DOMTokenList ---
{{APIRef}}{{ gecko_minversion_header("1.9.2") }}
DOMTokenList
接口表示一组空格分隔的标记(tokens)。如由 {{ domxref("Element.classList") }}、{{domxref("HTMLLinkElement.relList")}}、{{domxref("HTMLAnchorElement.relList")}} 或 {{domxref("HTMLAreaElement.relList")}} 返回的一组值。它和 JavaScript {{jsxref("Array")}} 对象一样,索引从 0 开始。DOMTokenList
总是区分大小写(case-sensitive)。
DOMTokenList
列表的值。length
),则返回 undefined
或 null
,在 {{ gecko("7.0") }} 之前的版本中返回 null
。token
,则返回 true
,否则返回 false
。token
)到 DOMTokenList
列表中。DOMTokenList
列表中移除一个或多个标记(token
)。newToken
替换 token
。token
是相关属性(attribute)支持的标记,则返回 true
。token
),并返回 false
。如果传入的字串(token
)不存在,则将其添加进去,并返回 true
。force
是一个可选的布尔值,如果传入 true
,且传入的 token
不存在,则将其添加进去并返回 true
,若传入的 token
存在,则直接返回 true
;反之,如果传入 false
,则移除存在的 token
,并返回 false
,如 token
不存在则直接返回 false
。DOMTokenList
中的元素都调用一次传入的 callback
函数 。在下面这个简单的例子中,我们使用 {{domxref("Element.classList")}} 获取了 {{htmlelement("p")}} 元素的class列表,也就是一个DOMTokenList
,再使用 {{domxref("DOMTokenList.add()")}} 添加了一个class,然后更新 <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}"`;
输出类似这样:
修改 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}"`;
输出类似这样:
规范 | 状态 | 注释 |
---|---|---|
{{SpecName("DOM WHATWG", "#interface-domtokenlist", "DOMTokenList")}} | {{Spec2("DOM WHATWG")}} | Initial definition |
{{Compat("api.DOMTokenList")}}