2011-08-23 72 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中,工作正常。 –