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

这会获取所有输入字段,但也会选择我不想要的选择字段。

例如

<select><option>example</option></select>
4

3 回答 3

2

使用 a.not()省略选择框

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

或者使用 CSS 样式:not选择器

var $inputs = $('.add-item-form :input:not(select)');
于 2012-04-19T10:17:43.373 回答
0

:input是一个 jQuery 特定的伪选择器,用于inputtextareabuttonselect元素。所以你可以这样做:

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');

...再次,这具有由浏览器优化的东西在可能的情况下处理的优势。

于 2012-04-19T10:17:48.237 回答
0

如果您只想要input元素,请省略冒号:

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

选择器:input选择所有输入、文本区域、选择和按钮元素。如果您只想要输入元素,只需说input.

(如果您确实需要 textarea 或 button 元素,则此答案不好。)

于 2012-04-19T10:20:26.603 回答