在添加或删除之前检查classList是否包含类?

时间:2016-05-03 08:28:42

标签: javascript

我的一位同事坚持认为,在添加或删除元素之前,首先检查元素是否存在。

因此他的代码中有很多构造如下:

if (element.classList.contains('info')) {
    element.classList.remove('info');
}

if (!element.classList.contains('hint')) {
    element.classList.add('hint');
}

我个人认为,如果用.contains()退出支票,就不会发生任何事情。

应该意思是:

如果班级不存在,则不会删除任何内容。这句话毫无意义。

如果班级已经在那里,则不会添加任何内容。

我的同事是否对他坚持支票是正确的,因为不检查可能会导致一些麻烦?

或者我可以忘记检查吗?

2 个答案:

答案 0 :(得分:14)

明确检查毫无意义。这是浪费时间并使你的代码膨胀。

这些检查有效地内置于添加和删除类方法。

如果您尝试添加该元素已经是其成员的类,则classList.add将忽略它。

如果您尝试删除该元素不是其成员的类,则classList.remove将不执行任何操作。

答案 1 :(得分:0)

两种方式都是正确的,没有任何意义,这是重要的,但在某些情况下,您可能需要使用.contains()完全取决于您的情况。

但是全球并不重要,你可以直接删除该类。如果类存在,则代码将起作用,否则不起作用。