删除标记之前的jQuery检查

时间:2013-08-17 16:31:27

标签: javascript jquery removeclass

在使用它之前检查现有标签是否有意义?或者是jQuery正在做什么事情?

这是一个示例代码

$('#my_ul li.active').removeClass('active');

...或

if(  $('#my_ul li.active').length ) {
    $('#my_ul li.active').removeClass('active');
}

2 个答案:

答案 0 :(得分:3)

不,没有意义。它既不快也不实用。不要这样做。

简单地做

 $('#my_ul li').removeClass('active');

并且即使没有这样的元素也不会有任何错误,即使li元素没有active类。

答案 1 :(得分:1)

jQuery为选择返回的每个元素执行循环。因此,如果数组中的元素为零,则循环将发生零次。举个例子

HTML

<ul>
   <li>Hello World</li>
</ul>

JavaScript是

var $('li');

如果您在控制台上记录它将返回一个元素数组,它将如下所示;

[<li>Hello world</li>]

因为上面是一个数组,当jQuery循环时它将执行一次。 但是,如果该部分返回零项,则循环将永远不会出现在那里

$('div').removeClass(".myClass");

基本上就是removeClass插件(它只是一个插件,它只是一个插件,它是核心jQuery代码的一部分)

插件会做这样的事情;

$.each($('div), function () {
  //some code to remove the class 
})

希望这有助于您了解jQuery的内部结构