element.classList
返回一个类数组,我的 understanding .includes()
与数组一起使用,所以我不明白为什么这不起作用,我知道我可以使用 .contains() with classList 但是我很好奇为什么 .includes() 不起作用。
两者都是数组,如果我输入这个例如它不会工作
var li=document.createElement('li');
li.classList.add('main-nav');
li.classList.includes('main-nav');
但这会
var ary=['a','b','c'];
ary.includes('a');
原文由 Brandon 发布,翻译遵循 CC BY-SA 4.0 许可协议
Element.classList
是一个 DOMTokenList 对象,尽管它在控制台中打印类似数组。但是,如果您尝试使用 Firefox,它会返回DOMTokenList["main-nav"]
并且, includes 是 Array 而不是 DOMTokenList 的 方法。
这就是为什么在您的情况下预计会遇到
li.classList.includes is not a function
。您可以使用 ES2015 扩展运算符 将其转换为数组。
或者,您可以使用 DOMTokenList.contains 方法。
为什么声明为
includes
而不是has
或contains
? (感谢@akinuri)引用 提案