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()但没有运气。

我认为这很接近,但绝对不是没有雪茄。(在这一点上,前两行工作得很好)

$('.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紧随其后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 回答
1

您可以使用.next()从标签中查找 div。我看不出有任何理由:first用作选择器,因为第一个标签已经有一个类,而第二个标签没有。

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

在此处查看行为

于 2013-04-24T18:34:23.783 回答