0

私は次のHTMLを取得しました:

<ul class="specs">
        <li>
            <div class="trigger">› City (2)</div>
            <div class="cityByLocation">
                <ul>
                    <li class="cityInfo">
                        <div class="cityName" style="float: left;">
                            › New York
                        </div>
                        <div class="cityDistance" style="float: left;">
                            430 miles
                        </div>
                        <div class="btn-take"></div>
                    </li>
                    <li class="cityInfo">
                        <div class="cityName" style="float: left;">
                            › Chicago
                        </div>
                        <div class="cityDistance" style="float: left;">
                            430 miles
                        </div>
                        <div class="btn-take"></div>
                    </li>
                </ul>
            </div>
        </li>
<ul>

「City(2)」をクリックすると、下の両方のdivが表示されます。しかし、私はそれらにクラスを追加したいと思います。

これは今の私のjsです:

$('.trigger').click(function ()
    {
        $(this).siblings('div').eq($(this).index()).toggle();

        $(this).eq($(this).index()).toggleClass("locationSelected");

        return false;
    });

これにより、「City(2)」という名前の後ろに青い背景が追加されますが、必要な基になるdivは追加されません。

そのdivはクラス"cityByLocation"で、クラスlocationSelectedを追加したいと思います。

編集:

私は使用することになった

$('。trigger')。click(function(){$(this).siblings('div')。eq($(this).index())。toggle(); $(this).toggleClass( " locationSelected "); $(this).siblings('div')。eq($(this).index())。toggleClass(" locationSelected ");

return false; });
4

4 に答える 4

4

を使用するのではなく、をtoggleClass使用するaddClass

$(this).eq($(this).index()).addClass("locationSelected");
于 2012-11-26T16:25:29.353 に答える
1
$(this).siblings('.cityByLocation').addClass("locationSelected");

クラスを追加するだけの場合はこれを使用しますがtoggleClass、交互にクリックしてクラスを削除する場合は代わりに使用します。

于 2012-11-26T16:26:39.283 に答える
0
.addClass("locationSelected");
于 2012-11-26T16:25:02.630 に答える
0

div隣接する要素内にネストされた要素にクラス名を追加することを前提として、:をお勧めしdivますul

$(this).next('.cityByLocation').find('div').addClass('locationSelected');
于 2012-11-26T16:31:06.053 に答える