0

:first ラベルの直後に div にクラスを追加する必要があります。

私のHTMLはそのままです:

<label class="twc-first active">3DTV</label>
<div class="content mobile">
    <ul class="content">
    </ul>
    <h3>Secondary Topic Content</h3>
    <ul class="secondaryContent">
    </ul>
</div>

<label>Auto HD</label>
<div class="content">
    <ul class="content">
    </ul>
    <h3>Secondary Topic Content</h3>
    <ul class="secondaryContent">
    </ul>
</div>

私はすでに jQuery を使用して label:first を見つけ、クラス twc-first と active を追加しています。私が今必要としているのは、

<div class="content"> 

そしてそれを作ります:

<div class="content mobile">

その直後

<label class="twc-first active">.

.closest()、などの複数の組み合わせを試しましたが、.next()うまくいきませんでした。

これは近いと思いますが、葉巻ではありません. (この時点で最初の 2 行はうまく機能しています)

$('.twc-FAQTopics label:first').addClass('twc-first').addClass('active');
$('.twc-FAQTopics label:last').addClass('twc-last');

$('.twc-FAQTopics label:first').next('div.content').addClass('mobile');
4

2 に答える 2

1

を使用.next()して、ラベルから div を見つけることができます。:firstただし、最初のラベルにはすでにクラスがあり、2 番目のラベルにはないため、セレクターとして使用する理由はありません。

$('label.twc-first').next('div.content').addClass('someClass');

ここで動作を参照してください

于 2013-04-24T18:34:23.783 に答える
1

.next() divが の直後にある場合にのみlabel機能します。

と の間に別の要素があるlabelと、div機能しません。
デモ: http://jsfiddle.net/dirtyd77/uPHk6/6/

それ以外の場合は、次を使用する必要があります.nextAll()

$('label:first').nextAll('div:eq(0)').addClass('classHere')

デモ: http://jsfiddle.net/dirtyd77/uPHk6/7/


アップデート:

次のものも使用できますNext Siblings Selector (~)

//without :first in div:first, it will return all subsequent divs
$('label:first ~ div:first').addClass('classHere'); 

デモ: http://jsfiddle.net/dirtyd77/uPHk6/10/

于 2013-04-24T18:46:32.953 に答える