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