所以这似乎比我需要的更复杂。我需要找到一种方法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>
现在,当我点击“4”时,我会有这样的事情:
$('.radio span').click(function(){
$('.radio span').removeClass('selected');
$(this).addClass('selected');
});
这很好,因为它将类添加到第4个。我需要它在4之前选择所有li中的跨度。我试过:
$(this).closest('li.radio').prevAll().children('span').addClass('selected');
但它似乎不想工作?
答案 0 :(得分:3)
您需要使用.find
来获取span
,因为它不是li
(它是后代)的孩子。
$(this).closest('li.radio').prevAll().find('span').addClass('selected');
你应该把它从addClass链接起来:
$(this).addClass('selected').closest('li.radio').prevAll().find('span').addClass('selected');