0

divのリストがあります。1 つは現在としてマークされています。現在の div より前のすべての div を持つ要素内のクラスを交換する必要があります。

<div id="1">
    <span class="green"></span>
</div>

<div id="2">
    <span class="green"></span>
</div>

<div id="3" class="current">
    <span class="green"></span>
</div>

<div id="4">
    <span class="green"></span>
</div>

したがって、ID 1 と 2 の div の「緑」クラスは「赤」に変更する必要があります。クラス 'current' は、AJAX 関数が成功時に異なる ID を返す場合に変更されます。

var ct = $('.current').attr('id');

$.ajax({
    ...
dataType: "json",

success: function(data){
    var cid = data.cid;

    if (ct != cid) {
        $('div').removeClass('current');
        $('div#'+cid).addClass('current');
    }
}

その SPAN クラス スワップを追加する方法がわからない。すべてのスパンに .each() を追加しますか? 次に、一度停止して「現在」を過ぎて変更しないようにするにはどうすればよいですか?

4

1 に答える 1

1

これは、jQueryのlt()セレクターを使用するのに最適な場所です。divのインデックスを抽出してからselected、選択したインデックスよりも小さいインデックスを持つすべての要素に対してアクションを実行する必要があります。

var selectedIndex = $("div.current").index();
var previousDivs = $("div:lt("+selectedIndex+")");

previousDivsこれで、選択した要素の前にあるすべての要素を含む変数ができました。

参考文献-

于 2012-11-11T15:36:43.840 に答える