2012-04-19 75 views
0
var $inputs = $('.add-item-form :input'); 

這將獲得所有輸入字段,但也會選取我不想要的選擇字段。如何獲取所有未選擇的輸入字段

例如

<select><option>example</option></select> 
+1

':input'也返回'textarea'和'button'元素。你想要那些,還是隻想要'input'元素? – 2012-04-19 10:19:10

回答

0

:input是jQuery的特定僞選擇了inputtextareabutton ,和select元素。所以,你可以這樣做:

var $inputs = $('.add-item-form :input:not(select)'); 

...但你也可以叫出來,你想具體是什麼:

var $inputs = $('.add-item-form input, .add-item-form textarea, .add-item-form button'); 

...這將具有的優點是,如果瀏覽器支持querySelectorAll(在標準模式下幾乎所有的都是這樣),jQuery可以直接切換到本地處理(而:input只針對jQuery,所以不能由瀏覽器的原生東西處理)。

或者,當然,如果你不想textareabutton元素,它真的很簡單:

var $inputs = $('.add-item-form input'); 

...並再次擁有的瀏覽器的優化的東西在可能被處理的優勢。

+0

選擇你的答案,因爲$('。add-item-form:input:not(select)');但是var $ inputs = $('。add-item-form:input')。not(「select」)沒有。 – 2012-04-19 10:37:30

+0

@Hardworker:這很奇怪,它應該有。它對我有用:http://jsbin.com/atuzaq我認爲你最好用我的答案中的第二或第三個例子,但你提到的兩個例子中,兩者都應該工作。 – 2012-04-19 10:45:28

2

使用.not()省略選擇框

var $inputs = $('.add-item-form :input').not("select") 

或者使用CSS樣式:not選擇

var $inputs = $('.add-item-form :input:not(select)'); 
+1

兄弟洛爾茲我輸入了確切的答案+ 1好! :P – 2012-04-19 10:20:08

0

如果你只是想input要素,省略冒號:

$('.add-item-form input'); 

:input選擇器選擇所有輸入,文本區域,選擇和按鈕元素。如果你只想要輸入元素,就說input

(這個答案是沒有好,如果你想文本域或按鈕元素。)

相關問題