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")か?次に、各ループを使用して変数を設定するか、:firstセレクターを追加してjQueryを続行します。

于 2012-09-22T13:22:02.080 に答える
0

getAttribute('class');ユーザーのブラウザがIEなら使うべきだと思います

于 2012-09-22T13:18:06.403 に答える