6

基本的に、特定のクラス名を持つすべての要素を見つけて、別の要素に切り替えようとしています。これを元のクラス名に戻す別の関数があります。これがonclickでトリガーされる私の関数です:

function showEventsAppliedTo() {
    var myObj = document.getElementsByClassName('notApplied');
    while (myObj.length >= 0) {
        myObj[0].className = 'mblListItem notAppliedOut';
    }
    AppliedToButton.set('style', 'display:none;');
    EventListingButton.set('style', 'display:block;');
}

myObj[0]が未定義であるというエラーが表示されます。なぜこれが起こっているのか考えていますか?

注として、Dojoを使用しているため、関数の最後の行です。jQueryでこれを簡単に実行できることは知っていますが、私たちはそれを使用しておらず、別のフレームワークをロードすることは意味がありません。

よろしくお願いします。

編集

Abhishek Mishraの助けを借りて、このループの処理方法を変更し、私が好んだJUSTdojoでそれを行う方法を見つけました。コードは次のとおりです。

function listingClassToggle() {
    dojo.query(".notApplied").addClass("notAppliedOut");
    dojo.query(".notApplied").removeClass("notApplied");
}

以前のソリューションよりもはるかに単純なコードで、はるかに軽量です。ご協力ありがとうございます。これが他の誰かに役立つことを願っています。

4

1 に答える 1

5

> 0ないことをテストする必要があり>= 0ます。長さがゼロに等しい場合、要素ゼロはありません。

于 2012-10-09T16:37:16.020 に答える