jQuery jQuery将类添加到当前li并在li a内部单击时删除prev li

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/9688778/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-27 11:09:31  来源:igfitidea点击:

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

jqueryhtml

提问by test

here is html:

这是html:

<ul>    
    <li class="current"><a href="#">menu item</a></li>  
    <li><a href="#aba">menu item</a></li>
    <li><a href="#abb">menu item</a></li>
    <li><a href="#abc">menu item</a></li>
    <li><a href="#abd">menu item</a></li>
</ul>

if I press 'a' link it will addClass 'current' to clicked li and remove old li class? this is my try:

如果我按“a”链接,它会将“当前”类添加到单击的 li 并删除旧的 li 类?这是我的尝试:

$('ul li a').click(function(){
  $('ul li').removeClass('current');
  ... don't know here (add class to current li) ...
});

回答by Rob W

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

使用.parent('li').closest('li')选择单击的<li>

$('ul li a').click(function() {
    $('ul li.current').removeClass('current');
    $(this).closest('li').addClass('current');
});

回答by The Alpha

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

如果您使用的是最新版本的 jquery,请使用 on('click')

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

A fiddle is here.

一把小提琴在这里

回答by atpatil11

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

罗布是对的,但 $('ul li.current').removeClass('current');对我不起作用。以下代码有效。

jQuery('ul li a').click(function() 
{

jQuery('ul').children().removeClass('selected');
jQuery(this).closest('li').addClass('selected');

}

}

回答by Hamza Waqas

$('ul li a').click(function(){
  $('ul').children().removeClass('current');
  $(this).addClass('current');
});

Hope, this will works for you..

希望,这对你有用..

回答by Shyju

$(function(){

   $('ul li a').click(function(){
      var item=$(this).parent();
       $('ul li').removeClass('current');
       item.addClass("current")
    });

});?

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

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

回答by Andrea Turri

Maybe you mean this?

也许你是这个意思?

$('ul li').each(function(){
  var t = $(this);
  t.find('a').click(function() {
    $('ul li').removeClass('current');
    t.addClass('current');
  });
});

回答by Sethen

Just add the the class to thislike so...

只需将类添加到this喜欢的...

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