0

OK私は次の構造を持っています:

<div class="class">
    <div class="test"></div>
    <div class="test">test</div>
    <div class="test">test</div>
    <div class="test">test</div>
    <div class="test">test</div>
    <div class="test">test</div>
</div>
<div class="class">
    <div class="test"></div>
    <div class="test">test</div>
    <div class="test">test</div>
    <div class="test">test</div>
    <div class="test">test</div>
    <div class="test reserved">test</div>
</div>
<div class="class">
    <div class="test"></div>
    <div class="test">test</div>
    <div class="test">test</div>
    <div class="test">test</div>
    <div class="test">test</div>
    <div class="test">test</div>
</div>

そしてこのjs:

$('.test').on('click', function () {
    $(this).addClass('checkin');
});

and.testの間にあるネストされたすべての div にクラスを追加するにはどうすればよいですか? 存在しない場合は、すべての div にクラスを追加しますか?.checkin.reserved.reserved.test

jsfiddle

4

5 に答える 5

1

これを試して

$('.test').on('click',function(){
$(this).addClass('checkin').nextUntil('.preserved').addClass('checkin');   
    for (var i = 0; i < $(this).parent().nextAll('.class').length;i++){
        var $class=$(this).parent().nextAll('.class').eq(i);
        if($class.find('.reserved').length ==0){

        }else{
            $class.find('.test:first').nextUntil('.reserved').addClass('checkin');
        }
    }
});

デモ

于 2013-09-05T15:24:03.053 に答える
0

使用する必要があります.hasclass()

説明: 一致した要素のいずれかに特定のクラスが割り当てられているかどうかを判断します。

$(this).hasClass('reserved') // retuns boolean value
于 2013-09-05T15:09:25.847 に答える