0

我正在使用 JQuery min 1.4.2。我有一个函数,它遍历几个表并添加一个带有数字的类:

$("#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 报告页面,我无权访问控制该页面的特定模板。

4

1 回答 1

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

这里有什么this?它应该是一个DOM 上下文。我认为您的选择器不需要它,因为 id (应该)是唯一的。如果您没有在特定函数中调用该函数,则this关键字可能会引用全局对象并因此导致错误。

于 2012-05-23T20:32:09.450 回答