单击跨度时,从同一父级下的其他跨度中删除所有类

时间:2011-07-13 03:48:03

标签: jquery html

有一些问题相似,但要么过于宽泛,要么没有显示良好的示例代码。

我想要做的就是,如果用户点击了跨度bButton,那么selected类将从所有其他跨度中删除,并替换为notSelected类。

<div id="mainNav">
  <span id="aButton" class="button selected">a</span>
  <span id="bButton" class="button notSelected">b</span>
  <span id="cButton" class="button notSelected">c</span>
</div>

这是什么jQuery解决方案?

谢谢!

3 个答案:

答案 0 :(得分:5)

  1. 从点击的元素中删除notSelected类。
  2. selected类添加到单击的元素。
  3. 从所有兄弟姐妹中删除selected课程。
  4. notSelected课程添加到所有兄弟姐妹。
  5. $('#mainNav > span').click(function() {
    
           $(this)
            .removeClass('notSelected')
            .addClass('selected')
            .siblings()
             .removeClass('selected')
             .addClass('notSelected');
    
    });
    

    jsFiddle

    作为旁注,我不打算使用notSelected类。

    您可以决定是否存在selected选择了哪个元素。如果元素没有selected类,则不会选中它。

答案 1 :(得分:0)

试试这个:

$('span').click(function(){
  $(this).parent().children('span').each(function(){
    $(this).removeClass('selected').addClass('notSelected');
  });
  $(this).removeClass('notSelected').addClass('selected');
});

工作示例:http://jsfiddle.net/AlienWebguy/SnnzV/

答案 2 :(得分:0)

$('span').live('click',function(){

$(this).removeClass('notSelected');
$(this).addClass('selected');


    $(this).siblings().each(function(){

          $(this).removeClass('Selected');
          $(this).addClass('notSelected');

    });

});