为了账号安全,请及时绑定邮箱和手机立即绑定

包含方法与严格相等

包含方法与严格相等

泛舟湖上清波郎朗 2023-04-27 15:08:55
todo.classList === 'completed 和 有什么区别 todo.classList.contains('completed')我不确定我是否误解了它们的用法或者我的代码写得不好,但我很困惑为什么后者选择具有完整类的元素而前者选择我的选择标签中的所有选项。
查看完整描述

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>


查看完整回答
反对 回复 2023-04-27
?
叮当猫咪

TA贡献1776条经验 获得超12个赞

以下是您可以与类列表一起使用的所有方法。Contains 将返回一个布尔值,以确定元素是否具有您传递的类。


查看完整回答
反对 回复 2023-04-27
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

.classList返回一个DOMTokenListDOMTokenList与数组的工作方式类似,但没有它的所有 等等 很酷的东西.map().forEach()

todo.classList === 'completed'无法像您希望的那样将 aDOMTokenList与 a进行比较String

todo.classList.value === 'completed'仅当唯一的类todocompleted. 这不应该被使用。

todo.classList.contains('completed')如果 will 的至少一类是 ,则将todo起作用completed。这是最好的方法。

以下是使用DOMTokenLists 时可能需要的一些技巧:

[...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


查看完整回答
反对 回复 2023-04-27
?
阿晨1998

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'); 


查看完整回答
反对 回复 2023-04-27
  • 4 回答
  • 0 关注
  • 139 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信