jQuery add class to current li and remove prev li when click inside li a

后端 未结 7 525
执笔经年
执笔经年 2020-12-28 08:55

here is html:

相关标签:
7条回答
  • 2020-12-28 09:31

    Use .parent('li') or .closest('li') to select the clicked <li>.

    $('ul li a').click(function() {
        $('ul li.current').removeClass('current');
        $(this).closest('li').addClass('current');
    });
    
    0 讨论(0)
  • 2020-12-28 09:31

    Maybe you mean this?

    $('ul li').each(function(){
      var t = $(this);
      t.find('a').click(function() {
        $('ul li').removeClass('current');
        t.addClass('current');
      });
    });
    
    0 讨论(0)
  • 2020-12-28 09:42
    $(function(){
    
       $('ul li a').click(function(){
          var item=$(this).parent();
           $('ul li').removeClass('current');
           item.addClass("current")
        });
    
    });​
    

    http://jsfiddle.net/z8DYP/3/

    0 讨论(0)
  • 2020-12-28 09:45

    Rob is right but $('ul li.current').removeClass('current'); didn't work for me. Following code works.

    jQuery('ul li a').click(function() 
    {
    
    jQuery('ul').children().removeClass('selected');
    jQuery(this).closest('li').addClass('selected');
    

    }

    0 讨论(0)
  • 2020-12-28 09:51

    Use on('click') if you are using latest version of jquery

    $('ul li a').on('click', function(){
        $(this).parent().addClass('current').siblings().removeClass('current');
    });
    

    A fiddle is here.

    0 讨论(0)
  • 2020-12-28 09:51
    $('ul li a').click(function(){
      $('ul').children().removeClass('current');
      $(this).addClass('current');
    });
    

    Hope, this will works for you..

    0 讨论(0)
提交回复
热议问题