如何僅在沒有任何類時使用jQuery來選擇元素?jQuery:僅當它沒有類名時才選擇一個元素
我正在寫一個頁面,它允許html作者通過向元素添加一個類來覆蓋默認的jQuery動作。它應該是任何課程。
所以標記可能是:
<ul>
<li class="override"></li>
<li></li>
</ul>
我想jQuery的,只選擇第二個列表元素,因爲它沒有一個類。
我看過.hasClass(),但它似乎需要一個特定的類名稱。
謝謝!
如何僅在沒有任何類時使用jQuery來選擇元素?jQuery:僅當它沒有類名時才選擇一個元素
我正在寫一個頁面,它允許html作者通過向元素添加一個類來覆蓋默認的jQuery動作。它應該是任何課程。
所以標記可能是:
<ul>
<li class="override"></li>
<li></li>
</ul>
我想jQuery的,只選擇第二個列表元素,因爲它沒有一個類。
我看過.hasClass(),但它似乎需要一個特定的類名稱。
謝謝!
$('li:not([class])')
這應該做的事:$('li').not('li[class]')
你的第二個'li'類型的選擇是多餘的。 – 2012-01-28 01:57:58
是的。而我的解決方案也比其他的xD慢。至少我今天學到了一些新東西 – clime 2012-01-28 02:00:04
不知何故,我認爲帶有:not屬性的單選擇器會比這個更快。我在某處讀到:沒有比.not更快 - 我猜測.not解決方案需要遍歷DOM兩次。 – 2012-01-28 02:06:14
這應做到:
$('li:not([class]),li[class=""]')
第一部分,li:not([class])
使用"not selector"無線查找"has attribute"以查找根本沒有class
屬性的任何li
元素。
第二部分li[class=""]
發現任何li
元素的屬性設置爲空字符串。
有趣。第二個要素是在「no class」集合中包含一個空的類名?這可能是一個好主意 - 你永遠不知道。 – 2012-01-28 02:04:08
那麼,如果你玩弄我給你的jsfiddle,你可以看到發生了什麼,沒有第二部分,並決定你是否需要它在你的情況(我認爲你需要它)。 – nnnnnn 2012-01-28 02:09:53
您可以使用此:
if (!jQuery('li').hasClass('myClass') {
do something...
}
完美!這只是我想要的。 – 2012-01-28 02:01:52
我很樂意提供幫助。你可以通過點擊左邊的勾號按鈕來接受我的答案,如果這是你的問題的真實答案:) – 2012-01-28 02:06:34