IE的问题。 这是代码:
if (($.browser.msie)) {
var first_el = 0;
var targie = document.getElementById(targId).getElementsByTagName("div");
for (var i = 0; i < targie.length, first_el < 1; i++) {
if ((typeof targie[i].className != 'undefined') && (targie[i].className != null)) {
if ((targie[i].className == "category list even") || (targie[i].className == "category list") || (targie[i].className == "good list even") || (targie[i].className == "good list")) {
var targ = targie[i];
first_el += 1;
}
}
}
}
错误 - className null or not an object
找到了类似的主题,但解决方案对我没有帮助。
提前致谢
答案 0 :(得分:1)
我认为这不是实际的错误信息。它更像是cannot access property "classname", targie[i] is null or not an object
,不是吗?
您的问题似乎是循环的条件部分:i < targie.length, first_el < 1
使用comma operator。这意味着只要没有找到元素,你的循环就会运行 - 即使没有更多的元素。将其更改为i < targie.length && first_el < 1
,它应该可以正常工作。
$("#"+targid+" div.list")
这样的DOM选择器?然后,您可以使用每个循环来设置变量,或者只添加:first
选择器并继续使用jQuery。
答案 1 :(得分:0)
如果用户的浏览器是IE
,我认为你应该使用getAttribute('class');