Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery if(!)vs.not()_Jquery - Fatal编程技术网

jQuery if(!)vs.not()

jQuery if(!)vs.not(),jquery,Jquery,我在一个变量中存储了一个选择器,我正在检查该选择器是否有一个特定的类,以便添加另一个 以下哪项是更好的方法,为什么?对性能的影响等 任何其他方法也非常受欢迎 if(!selector.hasClass('class-2'))selector.addClass('class-1') 或 selector.not('class-2').addClass('class-1') 事先非常感谢您的帮助 Adam.not()比.hasClass()快 当谈到更好的性能时,您应该采用第二种方法。用于任何类型

我在一个变量中存储了一个选择器,我正在检查该选择器是否有一个特定的类,以便添加另一个

以下哪项是更好的方法,为什么?对性能的影响等

任何其他方法也非常受欢迎

if(!selector.hasClass('class-2'))selector.addClass('class-1')

selector.not('class-2').addClass('class-1')

事先非常感谢您的帮助

Adam

.not()
.hasClass()


当谈到更好的性能时,您应该采用第二种方法。

用于任何类型,但
仅用于选择器。例如

var something;
if(!something){
//do stuff here
}
但如果不是这样,这是不可能的:

if(not(something)){
//do stuff here
}
因此,选择选择器时选择
而不是
,选择
将是最好的选择在你们争论的时候是最好的



如果你真的感兴趣,那么你可以像@Arun p Johny说的那样查看。

我想我们这里有一个明确的赢家,来自


在中编写一个案例并自己检查,或者您可以调用addClass(),它将在内部处理该案例—我认为测试不正确。用3个参数运行一次jQuery方法和运行3次jQuery方法之间肯定有很大的区别?此外,在除新chrome之外的许多浏览器中,
not
相当慢。我已经在chrome上进行了测试。与hasClass和Attrilliant相比,not的结果更快!非常感谢你为我组装这个!将来我一定会尝试一下jsperf!
if (!$x.hasClass('test')) {
  $x.addClass('test');
}