什么了! (感叹号)表示jQuery中的选择器之前

时间:2014-07-27 13:10:28

标签: javascript jquery syntax jquery-selectors

我已经知道!通常用来表示JavaScript中的nonotnull等否定。

但是感叹号在jQuery中的选择器之前意味着什么呢?

if(!$('selector').hasClass('something')){do something}

3 个答案:

答案 0 :(得分:8)

它否定了布尔值。

含义:

  

true变为假

  

false变为真


在这个例子中,它意味着:

if(!$('selector').hasClass('something'))
  

如果selector 类什么

感叹号不适用于jQuery选择器,而是适用于hasClass函数的结果。就像你使用括号一样(但是你不必使用括号,JavaScript知道这意味着)。

!( $('selector').hasClass('something') /* e.g. returns true */ ) /* now it's false */

答案 1 :(得分:1)

它只是意味着if NOT然后执行某些操作,使其与通常的if条件相反。

例如,下面的是相同的

if(true) { //or if(something == true)
   //Do something
}

if(!false) { //or if(something != false)
   //Do something
}

所以在你的情况下,如果你的选择器返回false,那就做点什么。

答案 2 :(得分:0)

也意味着相同的否定含义,但您也可以使用

if($('selector.something').length){do something}

因为在jquery中如果找不到元素,其长度为0;

在某些情况下你也可以使用

$('select(:not(:attributor)')

例如

$('option(:not(:selected))')

相同
!$('option:selected')

这可能会对你有所帮助!