IE8中的not()选择器出现问题

时间:2011-08-23 19:00:06

标签: jquery html jquery-selectors

我遇到了以下jQuery代码行的问题

 var controls = selectedForm.find('input:not(type="hidden"), checkbox, select, textarea');

我要做的是选择selectedForm中不是<input type='hidden'....>的所有元素。 selectedForm是一个先前的选择器,用于选择感兴趣的表单对象。此表单中总共有5个字段,其中一个是隐藏的输入字段。

我的问题是在IE8中,变量“control”包含表单内的所有5个字段。在FF6中,这可以正常工作并返回我感兴趣的4个字段。

我假设我有语法错误,但我看不出它是什么。

2 个答案:

答案 0 :(得分:4)

请注意,您尝试使用attribute equals selector作为属性“type”,该属性应使用括号括起来:

var controls = selectedForm.find('input:not([type="hidden"]), checkbox, select, textarea');

答案 1 :(得分:1)

John Hartsock在那里正确识别了问题(必须使用[type="hidden"]),但是您也可以在不使用:not选择器的情况下编写该查询:

selectedForm.find('input[type!="hidden"], checkbox, etc');

http://api.jquery.com/attribute-not-equal-selector/