1

li私が使用した要素のリストがあります.toArray()。それらをループして目的の要素を見つけ、そのスタイル Class を変更する必要があります。

何が間違っているのかわかりませんが、インデックス項目のクラスを取得できないようですが、innerHTML問題なく取得できます。

var viewsIndex = $('#viewsList li').toArray()
        for(i=0; i < viewsIndex.length; i++) {
            if(viewsIndex[i].innerHTML == selectedTab) {

                console.log(viewsIndex[i].attr('style')); //This does NOT work
                console.log(viewsIndex[i].innerHTML); //This does work
            }
            else
            {


            }
        }

要素をターゲットにしたら、スタイルを使用.removeClass.addClassて変更したいと思います。

4

4 に答える 4

5

これは、jQuery 関数を持たない DOM オブジェクトです。

viewsIndex[i]

これは、attr関数を持つ jQuery オブジェクトです。

$(viewsIndex[i]).attr('style')

とにかく、あなたのコードはこれでもっと簡単になります:

$('#viewsList li').filter(function(){
    return this.innerHTML == selectedTab;
}).removeClass('foo').addClass('bar');
于 2013-01-19T17:28:33.843 に答える
4

オブジェクトでjQuery関数を呼び出して、最初にDOMオブジェクトに変換しようとしています。jQuery

変化する

viewsIndex[i].attr('style')

$(viewsIndex[i]).attr('style')
于 2013-01-19T17:26:49.930 に答える
1

使えませんでした.each()か?

$('#viewLists li').each(function(i){
    if($(this).html == selectedTab){
       $(this).removeClass('foo').addClass('bar');
    }
});
于 2013-01-19T17:34:33.217 に答える
0

jQueryeachを使用して要素をループし、としてそれらにアクセスします$(this)。このようにして、各アイテムのjQueryメソッドにアクセスできるようになります。

$('#viewsList li').each(function(){

    var element = $(this);

    if(element.html() == selectedTab){
        console.log(element.attr('style')
    } else {

    }
}
于 2013-01-19T17:32:41.900 に答える