2011-08-23 62 views
2

我在与下面的一行jQuery代码问题有没有()在IE8

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

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

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

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

+0

Everythi在':not()'语句中的ng仍然需要适当地使用,因为它会出现在':not()'语句之外,例如':not([attribute =“value”])'或':not(:last-child)'。我非常惊讶该声明在FireFox中的作用,因为它不应该。 – animuson

回答

4

注意你要使用的属性“类型”应该用方括号括起来的attribute equals selector

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

约翰Hartsock正确识别的问题有(必须使用[type="hidden"]),但是你也可以写不使用:not选择该查询:

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

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

+0

在问题上,它在FF6中似乎不起作用。在IE8中,工作正常。 –