应该hasClass在removeClass之前 - 纯Javascript

时间:2014-02-26 15:00:30

标签: javascript function class dom exists

要删除课程,请使用

getElementsByClassName("myclass1")[i].classList.remove("myclass2")

基于HTML5技术。 (我知道这不适用于IE9-,仅适用于浏览器。)

据我所知,绝对没问题,不检查是否存在类。正确?

但是,在我的情况下,我要移除myclass1的网页上有许多myclass2项,但其中大多数(假设90%)没有myclass2

检查类myclass2是否存在将有助于提高性能,因为检查是否存在可能比删除快得多? (仍然不确定我的上一次陈述)

在我的案子中你会做什么?

谢谢。

2 个答案:

答案 0 :(得分:1)

  

据我所知,绝对没问题,不检查是否存在类。正确?

是。 remove只删除它找到的令牌。

  

检查myclass2类是否存在将有助于提高性能,因为检查是否存在比删除要快得多?

很难,因为它会在列表中搜索两次。

答案 1 :(得分:1)

getElementsByClassName支持多个类,所以如果你想简化它,可以在参数中包含“myclass1”和“myclass2”,它只会返回那些同时具有这两个元素的元素(更多信息请参见此处) :https://developer.mozilla.org/en-US/docs/Web/API/document.getElementsByClassName)。

所以,在你的情况下,我建议使用它:

getElementsByClassName("myclass1 myclass2")[i].classList.remove("myclass2")