【发布时间】:2012-05-30 10:13:52
【问题描述】:
我正在使用 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 报告页面,我无权访问控制该页面的特定模板。
【问题讨论】:
-
您是否尝试过使用最新的 jquery 版本来隔离这个错误?
-
您的代码中的其他内容可能正在南下。简单的测试用例有效(jQuery 1.4.4 一个点发布修复的机会很小)。在 IE9 中测试 - jsfiddle.net/gjbzZ/1
-
是的,我认为问题出在其他地方。删除该行,看看问题是否停止发生
-
您的错误没有帮助..您正在显示缩小代码的错误,并且 n 行可能会合并为 1.. 使用非缩小版本,然后发布确切的错误.. 也是调用堆栈的屏幕截图会有所帮助.. 如有必要,请使用 IE 调试器
-
为了调试你真的应该使用非缩小版的 jQuery
标签: javascript jquery internet-explorer error-handling