DOMTokenList - 表示一组空格分隔的标记
DOMTokenList
接口表示一组空格分隔的标记。这样的集合由 Element.classList
,HTMLLinkElement.relList
,HTMLAnchorElement.relList
,HTMLAreaElement.relList
,HTMLIframeElement.sandbox
或 HTMLOutputElement.htmlFor
返回。与 JavaScript Array
对象一样,它以 0
开头索引。 DOMTokenList
始终区分大小写。
属性
DOMTokenList.length
只读
是一个 integer
,表示存储在对象中的对象数。
DOMTokenList.value
以 DOMString
表示的列表的值。
方法
DOMTokenList.item()
通过索引返回列表中的项目(如果数字大于或等于列表的长度,则返回 undefined
)。
DOMTokenList.contains()
如果列表包含给定的标记,则返回 true
,否则返回 false
。
DOMTokenList.add()
将给定的标记添加到列表中。
DOMTokenList.remove()
从列表中删除指定的标记。
DOMTokenList.replace()
用新标记替换现有标记。
DOMTokenList.supports()
如果给定的标记位于关联属性的支持标记中,则返回 true
。
DOMTokenList.toggle()
从列表中删除给定的标记并返回 false
。如果标记不存在则添加,函数返回 true
。
DOMTokenList.entries()
返回 iterator
,允许您遍历该对象中包含的所有键/值对。
DOMTokenList.forEach()
每个 DOMTokenList
元素执行一次提供的函数。
DOMTokenList.keys()
返回 iterator
,允许您遍历该对象中包含的键/值对的所有键。
DOMTokenList.values()
返回 iterator
,允许您遍历该对象中包含的键/值对的所有值。
实例
在下面的简单实例中,我们通过 Element.classList
将 <p>
元素上的类列表获取为一个 DOMTokenList
对象,使用 DOMTokenList.add()
添加一个类 ,然后将 <p>
的 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 = '段落的 classList 是 "' + classes + '"';
输出如下:
<p class="a b c"></p>
<script>
var para = document.querySelector("p");
var classes = para.classList;
para.classList.add("d");
para.textContent = '段落的 classList 是 "' + classes + '"';
</script>
移除空格并删除重复项
修改 DOMTokenList
的方法(例如 DOMTokenList.add()
)会自动修剪任何多余的空格并从列表中删除重复的值。例如:
<span class=" d d e f"></span>
var span = document.querySelector("span");
var classes = span.classList;
span.classList.add("x");
span.textContent = 'span 的 classList 是 "' + classes + '"';
输出如下:
<span class=" d d e f"></span>
<script>
var span = document.querySelector("span");
var classes = span.classList;
span.classList.add("x");
span.textContent = 'span 的 classList 是 "' + classes + '"';
</script>
规范
规范 | 状态 | 备注 |
---|---|---|
DOM DOMTokenList 的定义 |
现行的标准 | 初始定义 |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 支持 | 支持 | 支持 | 10 | 支持 | 支持 |
replace |
61 | 17 | 49 | 未知 | 48 | 支持 |
supports |
50 | 17 | 49 | 不支持 | 支持 | 未知 |
移除空格并删除重复项 | 支持 | 未知 | 55 | 支持1 | 支持 | 支持 |
length |
支持 | 12 | 50 | 未知 | 支持 | 未知 |
value |
支持 | 未知 | 支持 | 未知 | 支持 | 支持 |
item |
支持 | 12 | 支持 | 10 | 支持 | 支持 |
contains |
支持 | 12 | 支持 | 10 | 支持 | 支持 |
add |
支持 | 12 | 支持 | 10 | 支持 | 支持 |
remove |
支持 | 12 | 支持 | 10 | 支持 | 支持 |
toggle |
支持 | 12 | 支持 | 11 | 支持 | 支持 |
entries |
支持 | 未知 | 50 | 未知 | 支持 | 未知 |
forEach |
支持 | 不支持 | 50 | 未知 | 支持 | 未知 |
keys |
支持 | 未知 | 50 | 未知 | 支持 | 未知 |
values |
支持 | 未知 | 50 | 未知 | 支持 | 未知 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 支持 | 支持 | 支持 | 支持 | 未知 | 支持 | 支持 |
replace |
61 | 61 | 17 | 49 | 未知 | 48 | 支持 |
supports |
50 | 50 | 17 | 49 | 未知 | 支持 | 不支持 |
移除空格并删除重复项 | 未知 | 支持 | 未知 | 55 | 未知 | 支持 | 支持 |
length |
支持 | 支持 | 未知 | 50 | 未知 | 支持 | 未知 |
value |
支持 | 支持 | 未知 | 支持 | 未知 | 支持 | 支持 |
item |
支持 | 支持 | 未知 | 支持 | 未知 | 支持 | 支持 |
contains |
支持 | 支持 | 未知 | 支持 | 未知 | 支持 | 支持 |
add |
支持 | 支持 | 未知 | 支持 | 未知 | 支持 | 支持 |
remove |
支持 | 支持 | 未知 | 支持 | 未知 | 支持 | 支持 |
toggle |
支持 | 支持 | 未知 | 支持 | 未知 | 支持 | 支持 |
entries |
支持 | 支持 | 未知 | 50 | 未知 | 支持 | 未知 |
forEach |
支持 | 支持 | 未知 | 50 | 未知 | 支持 | 未知 |
keys |
支持 | 支持 | 未知 | 50 | 未知 | 支持 | 未知 |
values |
支持 | 支持 | 未知 | 50 | 未知 | 支持 | 未知 |
1. IE 只移除空格 - 它不会删除重复项。
相关链接
-
DOMSettableTokenList
(继承DOMTokenList
的对象,可以设置 .value 属性)