我想创建一个脚本,该脚本将为没有特定类的第一个子类添加一个类,对于具有特定类的每个父类。 例如:
<div class="wrap">
<p class="no">1. Not this one please</p>
<div>
<p>2. not this either</p>
</div>
<p>3. Make this red!</p>
<p>4. Not this</p>
</div>
<div class="wrap">
<p class="no">5. Not this one please</p>
<p>6. Make this red also!</p>
<p>7. Not this</p>
</div>
我的javascript如下:
$('div.wrap').find('p:not(.no):first').addClass('red');
这将选择没有class="no"
的后代,而不是第一个孩子(所以第2项,而不是上例中的第3项)。
我尝试将.find
更改为.children
,但之后它只选择页面上的第一个示例,而不是每个集合中的第一个示例(因此上面示例中只有第2项,而不是第6项) )。
这是一个说明上述http://cdpn.io/izGDH
的codepen答案 0 :(得分:5)
你非常接近!您想要添加指令以仅抓取直接后代:“&gt;”
$('div.wrap').find('> p:not(.no):first').addClass('red');
答案 1 :(得分:0)
这是一种方式:
$('div.wrap p.no').each(function(){ $(this).siblings('p').first().addClass('red'); })
<强> jsFiddle example 强>