通過類名選擇元素很容易。但是,是否可以選擇任何在jQuery中根本沒有類集的DOM元素?一種空的樣式選擇器。在jQuery中選擇沒有樣式的元素
例子:
<div class="nope">
<div>You need me!</div>
</div>
<span class="foo">Not me</span>
var answer = $("selector-im-looking-for").text(); // You need me!
通過類名選擇元素很容易。但是,是否可以選擇任何在jQuery中根本沒有類集的DOM元素?一種空的樣式選擇器。在jQuery中選擇沒有樣式的元素
例子:
<div class="nope">
<div>You need me!</div>
</div>
<span class="foo">Not me</span>
var answer = $("selector-im-looking-for").text(); // You need me!
我建議:
$('div').not('[class]');
JS Fiddle demo,請注意,這種方法不能選擇<span>
元素(以下有關HTML)。
或者,選擇所有元素,而一個類屬性:
$('body *:not("[class]")')
JS Fiddle demo,注意,這也無法選擇<span>
元素。
通用選擇器(*
)隱含在僞類選擇器沒有標籤名的情況下,但在使用它的情況下,我更喜歡明確它,儘管在這種情況下它是可選的。
此外,爲了選擇所有元件時,<body>
內,與不用class
屬性,或與類屬性,但沒有設置類名:
$('body *').filter(function(){
return !this.className || !this.className.length;
})
JS Fiddle demo,這種方法,因爲它測試了className
屬性的缺失以及空的/零長度的className
屬性,因此成功找到了<span>
。
上述演示均使用具有以下HTML:
<div class="nope">
Some text that should not be selected.
<div>You need me!</div>
</div>
<span class="foo">Not me</span>
<span class="">Me too (probably)</span>
參考文獻:
Tnx爲您的正確答案,但我接受了大衛托馬斯的一個。 – Andries
您可以使用過濾器,
$('div').filter(function(){
return $(this).attr('class') === null;
}).each(function(){
//iterate item
})
我希望我已經讓你沒有冒犯,但我選擇了格式化你的答案(爲了呈現代碼*作爲代碼*和可讀性)。對於格式化幫助(幫助您將代碼格式化爲代碼),請查看[Markdown幫助頁面](http://stackoverflow.com/editing-help/)。 :) –
Tnx!這是我正在尋找的選擇器。我會在大約9分鐘內接受它作爲答案... – Andries
你真的很受歡迎,我很高興能夠得到幫助! –