2011-05-12 36 views
33

我試圖選擇頁面上的所有input元素,但不是那些類型爲imagebuttonsubmit的元素。我首先想到的是選擇所有類型爲textinput元素,然後是所有類型checkbox等。是否有「或」屬性選擇器,如input [type = button | text]?

但是,這不是很優雅。我想知道這裏是否有更好的技術。有用的是像input[type=text|checkbox|radio|password|etc]這樣的選擇器,但這似乎不可用。

我知道我也可以選擇全部input s,然後使用.filter()過濾它們,但是是否有更通用的選擇器來選擇具有屬性列表之一的元素?

+0

+1有趣的問題。 – pixelbobby 2011-05-12 18:19:40

回答

44

既然你要包括一切除了少數特殊類型的,試試這個:

$('input:not([type=image],[type=button],[type=submit])') 
+5

不要害怕! – 2011-05-12 18:24:36

+0

+1不幸的是,你的評論比你的回答得到更多upvotes。我嘗試改進。 – 2011-05-12 18:26:03

+1

文檔:http://api.jquery.com/multiple-selector/ – 2011-05-12 18:26:28

21
$('input[type=text], input[type=checkbox], input[type=radio]').stuff(); 

或(從意見採取)

$('input:not([type=image],[type=button],[type=submit]') 
+4

或'$('input:not([type = image],[type = button],[type = submit])'(把這個評論轉移到答案中) – 2011-05-12 18:21:09

+0

這是個不錯的選擇 – 2011-05-12 18:22:41

+0

@Michael Haren:我在找什麼,謝謝! – pimvdb 2011-05-12 18:23:05

5

在CSS中,你可以有這樣選擇:

input[type=text],input[type=checkbox],input[type=radio],input[type=password] 

也許這部作品在jQuery的爲好。

0

我知道它老了,但我覺得最好的優雅的解決方案,這將是給他們一個共同的類然後用它作爲選擇器?

0

以上答案並不完全正確。

當依賴於id(#)這些方法似乎失敗。

根據我的經驗,我們需要爲每個or聲明添加id。

像這樣:

$('#id input[type=text], #id input[type=checkbox], ... 
相關問題