4 回答
TA贡献1831条经验 获得超9个赞
todo.classList === 'completed'
和有什么区别todo.classList.contains('completed')
classList
与字符串进行比较是没有意义的,因为它是一种类似数组的数据结构。去吧el.classList.contains(str)
。
如果您确定您的元素只有一个 CSS 类,您可以这样做el.className === 'completed'
,或者如果它至少保证是第一类,则el.classList[0] === 'completed'
。但你不应该。
const todo = document.querySelector('div');
console.log(todo.className === 'completed'); // true
console.log(todo.classList.contains('completed')); // true
<div class="completed"></div>
TA贡献1805条经验 获得超9个赞
.classList
返回一个DOMTokenList
。DOMTokenList
与数组的工作方式类似,但没有它的所有 等等 很酷的东西.map()
。.forEach()
todo.classList === 'completed'
无法像您希望的那样将 aDOMTokenList
与 a进行比较String
。
todo.classList.value === 'completed'
仅当唯一的类todo
是completed
. 这不应该被使用。
todo.classList.contains('completed')
如果 will 的至少一类是 ,则将todo
起作用completed
。这是最好的方法。
以下是使用DOMTokenList
s 时可能需要的一些技巧:
[...todo.classList]; //convert to array
todo.classList[0]; //unofficial way to get the nth class name
todo.classList.item(0); //standard way to get the nth class name
TA贡献2037条经验 获得超6个赞
您的用法不正确。
包含可以与类列表一起使用。您不能直接将条件放在类列表方法上。
event.target.classList.add('class3');
event.target.classList.remove('class1');
event.target.classList.contains('class2'); // To check class is present or not it returns boolean value.
event.target.classList.toggle('class4');
添加回答
举报