var $inputs = $('.add-item-form :input');
這將獲得所有輸入字段,但也會選取我不想要的選擇字段。如何獲取所有未選擇的輸入字段
例如
<select><option>example</option></select>
var $inputs = $('.add-item-form :input');
這將獲得所有輸入字段,但也會選取我不想要的選擇字段。如何獲取所有未選擇的輸入字段
例如
<select><option>example</option></select>
:input
是jQuery的特定僞選擇了input
,textarea
,button
,和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,所以不能由瀏覽器的原生東西處理)。
或者,當然,如果你不想textarea
和button
元素,它真的很簡單:
var $inputs = $('.add-item-form input');
...並再次擁有的瀏覽器的優化的東西在可能被處理的優勢。
選擇你的答案,因爲$('。add-item-form:input:not(select)');但是var $ inputs = $('。add-item-form:input')。not(「select」)沒有。 – 2012-04-19 10:37:30
@Hardworker:這很奇怪,它應該有。它對我有用:http://jsbin.com/atuzaq我認爲你最好用我的答案中的第二或第三個例子,但你提到的兩個例子中,兩者都應該工作。 – 2012-04-19 10:45:28
使用.not()
省略選擇框
var $inputs = $('.add-item-form :input').not("select")
或者使用CSS樣式:not
選擇
var $inputs = $('.add-item-form :input:not(select)');
兄弟洛爾茲我輸入了確切的答案+ 1好!
如果你只是想input
要素,省略冒號:
$('.add-item-form input');
的:input
選擇器選擇所有輸入,文本區域,選擇和按鈕元素。如果你只想要輸入元素,就說input
。
(這個答案是沒有好,如果你做想文本域或按鈕元素。)
':input'也返回'textarea'和'button'元素。你想要那些,還是隻想要'input'元素? – 2012-04-19 10:19:10