获取所有具有class属性的div
$('div[class]')
获取所有没有class属性的div
$('div[class!=""]')
该代码有效,但我不明白为什么有效。如果以上代码有效,则所有具有class属性的div的代码应为
$('div[class=""]')
这不会产生任何结果。
Answers:
尝试使用:not()
伪类选择器:
$('div:not([class])')
编辑
jQuery选择器的说明说:
[attribute]
[attribute=value]
[attribute!=value]
这意味着div[class=""]
将选择具有class
指定为空值的属性的所有DIV元素。
但是最后一个选择器是jQuery的专有选择器,而不是CSS选择器。您将需要使用:not()
选择所有没有类的DIV元素:
div:not([class])
not
情况,您可以执行以下操作 div:not([class], [style])
重要的是要意识到,有空的类属性以及没有类属性的元素,但是它们需要选择不同的测试。
有许多测试都可以做不同的事情。这是我们用于测试的HTML:
<div class="">Empty Class Attribute </div>
<div class="column">Full Class Attribute </div>
<div>No Class Attribute </div>
现在,让我们运行测试(第一部分只是一个字符串,可以帮助我们知道警报中刚刚调用的内容,否则就没有意义了):
$(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
现在,有了这些知识,如果您想选择div
页面上具有空白属性或没有属性的每个元素,请使用以下选择器:
$("div[class=''], div:not([class])");