jQuery获取所有没有class属性的div

得到所有具有class属性的div

$('div[class]') 

得到所有没有class属性的div

 $('div[class!=""]') 

这段代码的工作原理,但我不明白为什么它的作品。 如果上面的代码工作,那么所有具有class属性的div的代码应该是

 $('div[class=""]') 

这不会产生任何结果。

尝试使用:not()伪类select器 :

 $('div:not([class])') 

编辑

jQueryselect器的描述说:

  • [attribute]
    匹配具有指定属性的元素。
  • [attribute=value]
    将具有指定属性的元素与特定值进行匹配。
  • [attribute!=value]
    匹配不具有指定属性的元素,或者具有指定属性但不具有特定值的元素。

这意味着div[class=""]将select具有用空值指定的class属性的所有DIV元素。

但最后一个select器是jQuery的专有select器,而不是CSSselect器 。 您将需要使用:not()来select所有没有类的DIV元素:

 div:not([class]) 

重要的是要认识到, 有空类属性以及没有类属性的元素,但他们需要不同的testing来select。

有很多testing都做不同的事情。 这是我们testing的HTML代码:

 <div class="">Empty Class Attribute </div> <div class="column">Full Class Attribute </div> <div>No Class Attribute </div> 

现在,让我们运行我们的testing(第一部分只是一个string,可以帮助我们知道刚才在alert中调用了什么,否则就没有意义)

 $(document).ready(function(e){ // Outputs "Empty Class Attribute Full Class Attribute" alert( "div[class] : " + $('div[class]').text() ); // Outputs "Full Class Attribute" alert( "div[class!=''] : " + $('div[class!=""]').text() ); // Outputs "Empty Class Attribute" alert( "div[class=''] : " + $('div[class=""]').text() ); // Outputs "No class Attribute" alert( "div:not([class]) : " + $('div:not([class])').text() ); }); 

您可以在浏览器中查看此代码: http : //jsbin.com/ijupu

现在,掌握了这些知识,如果您想要select页面上的每个div元素都带有空白属性和无属性,请使用以下select器:

 $("div[class=''], div:not([class])"); 

$('div[class=""]')select器基本上读取: “获取所有div元素的类属性都有一个空string作为它的值。 – 排除除了空string之外的所有在类属性中具有ANY值的div元素,以及根本没有设置class属性的所有div元素。

尝试

 jQuery('div[class^=""]') 

要么

 $('div[class^=""]') 

这意味着得到所有的任何名称类的div