0

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 找到了类似的主题,但解决方案对我没有帮助。

提前致谢

4

2 回答 2

1

我不认为这是实际的错误信息。更像cannot access property "classname", targie[i] is null or not an object是,不是吗?

您的问题似乎是循环的条件部分:i < targie.length, first_el < 1它使用逗号运算符。这意味着只要没有找到元素,您的循环就会运行 - 即使没有更多元素。将其更改为i < targie.length && first_el < 1,它应该可以工作。

顺便说一句,你似乎使用 jQuery。为什么不使用 DOM 选择器$("#"+targid+" div.list")?然后,您可以使用 each 循环来设置变量,或者只需添加一个:first选择器并继续使用 jQuery。

于 2012-09-22T13:22:02.080 回答
0

getAttribute('class');如果用户的兄弟是 IE,我认为你应该使用

于 2012-09-22T13:18:06.403 回答