使用jquery获取所有先前元素的子元素
所以这在我的脑海里似乎比它需要的更复杂。我需要找到一种方法使用jquery获取所有先前元素的子元素,jquery,Jquery,所以这在我的脑海里似乎比它需要的更复杂。我需要找到一种方法addClass('selected')到所有先前元素的特定子级。假设我的HTML如下所示: <ul> <li class="radio"> <div class="child"> <span>1</span> </div> </li> <li class="radio"> <div cla
addClass('selected')代码>到所有先前元素的特定子级。假设我的HTML如下所示:
<ul>
<li class="radio">
<div class="child">
<span>1</span>
</div>
</li>
<li class="radio">
<div class="child">
<span>2</span>
</div>
</li>
<li class="radio">
<div class="child">
<span>3</span>
</div>
</li>
<li class="radio">
<div class="child">
<span>4</span>
</div>
</li>
<li class="radio">
<div class="child">
<span>5</span>
</div>
</li>
</ul>
$('.radio span').click(function(){
$('.radio span').removeClass('selected');
$(this).addClass('selected');
});
这很好,因为它将类添加到第四个类中。我还需要它来选择4之前所有li中的跨度。我试过:
$(this).closest('li.radio').prevAll().children('span').addClass('selected');
但它似乎不想工作?您需要使用。查找来获取span
,因为它不是li
的子代(它是后代)
您应该将其从addClass中链接出来:
$(this).addClass('selected').closest('li.radio').prevAll().find('span').addClass('selected');
您需要使用.find
来获取span
,因为它不是li
的子对象(它是后代)
您应该将其从addClass中链接出来:
$(this).addClass('selected').closest('li.radio').prevAll().find('span').addClass('selected');
好极了,真是魅力四射!当它让我接受的时候,我会接受的:德旺德福,像一个魔咒一样工作!当它允许我的时候,我会接受的