2012-05-23 178 views
0

我正在使用JQuery min 1.4.2。我有過幾個表進行迭代,並增加了一類具有附加了一些功能:Internet Explorer JQuery錯誤

$("#reportArea table", this).each(function(i){ 
$(this).addClass("table-" + i); 
}); 

出於某種原因,這個當我打開控制檯但拋出一個錯誤在IE 8和IE9,Firefox和Chrome瀏覽器,我沒有看到任何錯誤。在IE中的錯誤是:

Message: Invalid argument. 
Line: 48 
Char: 1 
Code: 0 
URI: /js/jquery-min.js 

如果我在IE調試器看48行,我看到:

a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue; etc.. 

我也試圖改寫我的代碼這一點,但仍然得到了同樣的錯誤:

$('#reportArea table:eq(0)').addClass('table-0'); 
$('#reportArea table:eq(1)').addClass('table-1'); 

奇怪的是,類仍然被添加到IE中的表中。

請注意,我會手動添加這些類,但這是一個JSP報告頁面,我無法訪問控制此頁面的特定模板。

+2

你有沒有嘗試隔離這個錯誤 - 只是爲了這個測試用例 - 使用最新的jQuery版本? – Lukx

+1

你的代碼中的其他東西可能會南下。簡單的測試用例工作(jQuery 1.4.4如此小的點發布修復某些東西的機會)。測試IE9 - http://jsfiddle.net/gjbzZ/1/ – mrtsherman

+0

是的,我認爲這個問題是在別的地方。刪除該行,看看問題是否停止發生 – Rodolfo

回答

-1
$("#reportArea table", this).each(... 
         ^^^^ 

什麼是this在這裏?它應該是DOM context。我認爲你不需要它作爲你的選擇器,因爲id是(應該是)唯一的。如果您沒有在特定函數內調用該函數,則this keyword可能會引用全局對象並因此導致錯誤。

+0

在第二部分,他試圖簡單的jquery它仍然失敗,它通過foreach循環循環,這就是爲什麼他的類正在增加。 – Baz1nga

+0

實際上應該是'$(this).find('#reportArea table')。(...' –

+0

啊,我錯過了。 – Bergi