2009-12-28 79 views
34

我在頁面上有幾個對象,我只想在其中一些上執行一個使用jQuery的操作 - 那些沒有指定屬性的操作。所以:jQuery選擇器 - 查找沒有指定屬性的對象

<li style='...'>some text</li> 
<li style='...'>some other text</li> 
<li>some very diffrent text</li> 

,並在javascript中我會有:

$('li[style]').hide(); 

會隱藏與style sttribute所有元素。但如果我想隱藏而不是它,我的選擇器應該如何?

回答

69
jQuery("li:not([style])").hide(); 
+0

非常簡單,只需一行...完美答案! – Druzion 2016-02-18 13:59:31

5

您可以使用:不是僞選擇器來查找元素匹配一定的選擇。在你的榜樣,要選擇無樣式屬性的所有li元素,所以你會使用這樣的:

$('li:not([style])').hide(); 

您還可以與其他選擇相結合的:

$('#div input:not(:checked)').show(); 

這是一個非常強大的工具!

0

您可能會發現更清晰,更高性能的使用.not()方法,而不是選擇。舉個例子:

$('li').not('[style]').hide(); 

這也是jQuery的開發者recommend

相關問題