从LI中删除带有jquery的类

时间:2010-06-27 21:25:15

标签: jquery

这会将类添加到li中。当单击另一个li时,它还会添加当前类。但现在我有两个潮流。你会注意到下面我试图从最初是当前的li中删除类电流。

var
$tabs = $('.promo-tabs li'),
$panes = $('.promo-panes > div');

$tabs.click(function(){
  $(this).addClass('current')
  $(this).parent().siblings().find('li').removeClass('current');
  $panes.eq($tabs.index(this)).fadeIn().siblings().hide();
  return false;
});

 //Init Promo Tabs
$tabs.first().click();

关于如何调整此行以便在点击另一个li后删除该类的任何想法都会很棒

  $(this).parent().siblings().find('li').removeClass('current');

3 个答案:

答案 0 :(得分:4)

为什么不

$tabs.removeClass('current')

之前放置
$(this).addClass('current')

?换句话说,只需从所有<li>元素中删除“当前”,然后将其添加到已单击的元素中。

答案 1 :(得分:1)

以下内容应该有效:

$tabs.click(function(){
  $tabs.removeClass('current');      
  $(this).addClass('current')
  $panes.eq($tabs.index(this)).fadeIn().siblings().hide();
  return false;
});

答案 2 :(得分:1)

我认为你的问题的答案是这个

$(this).parent().siblings().find('li').removeClass('current');

检查父母兄弟姐妹下的li标签。这些都应该有效

$(this).siblings().removeClass('current');
$(this).parent().find('li').removeClass('current');

但我认为最有效的解决方案是

$(this).parent().find('li.current').removeClass('current');
$(this).addClass('current');