如何从一组兄弟中删除一个类而不影响具有相同类的其他元素

时间:2013-12-16 04:14:27

标签: jquery tree-traversal

我有以下内容:

<div class="attributes_set_1>
   <label class="attributes"><input type="radio" value="1" /></label>
   <label class="attributes"><input type="radio" value="2" /></label>
   <label class="attributes"><input type="radio" value="3" /></label>
</div>

<div class="attributes_set_2>
   <label class="attributes"><input type="radio" value="1" /></label>
   <label class="attributes"><input type="radio" value="2" /></label>
   <label class="attributes"><input type="radio" value="3" /></label>
</div>

我正在尝试在单击时向第一组单选按钮添加活动类,但如果从同一组中选择不同的按钮,则还要删除该类。问题是我需要能够从下一组单选按钮中进行选择,而无需从任何其他组中删除活动类。

我已经尝试过几个选择器,但我认为让它工作的方法是选择那个特定父类的子代。

如何只选择特定父类的兄弟节点才能删除活动类?

$('.attributes').children().removeClass('active');

一旦我使removeClass()工作,我怎样才能将活动类添加到我点击的其他任何无线电中,无论它是否是同一兄弟的一部分?

$(this).addClass('active');

感谢任何人的帮助。

3 个答案:

答案 0 :(得分:0)

假设this是您添加了active类的单选按钮,那么您可以找到父label元素的兄弟节点,然后从其输入元素中删除该类< / p>

$(this).parent().siblings().find('input').removeClass('active');

答案 1 :(得分:0)

试试这个:

$('.attributes input').click(function() {
    $(this).addClass('active').parent().siblings('.attributes').find('input').removeClass('active');
})

答案 2 :(得分:0)

试试这个:

 $(this).parent().siblings().find('.active').removeClass("active");