2012-04-19 76 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

(这个答案是没有好,如果你想文本域或按钮元素。)

相关问题