如何使用jQuery将类添加到所有li但不添加到单击的li

时间:2018-09-21 14:16:20

标签: javascript jquery html

我想将hidden类添加到所有li中,而不要添加到单击的li中。我该如何使用jQuery?

<ul class="render-menu">        
  <li class="font-size">list 1</li>
  <li class="font-size">list 2</li>
  <li class="font-size">list 3</li>
  <li class="font-size">list 4</li>
</ul>
jQuery(".render_menu li").on('click', function() { 
  alert();
  jQuery(".render_menu").not($(this)).parent().addClass('hidden');
});

3 个答案:

答案 0 :(得分:6)

首先请注意,HTML中的classrender-menu,而JS使用的是render_menu。您需要使它们保持一致。

关于该问题,您正在将该类添加到parent()的{​​{1}}中,即li,因此 all 子元素都受到该类的影响。要解决此问题,请在调用ul之前使用siblings()获取所需的所有li元素。试试这个:

addClass()
$(".render-menu li").on('click', function() {
  $(this).siblings().addClass('hidden');
});
.hidden { display: none; }

答案 1 :(得分:0)

将您的JS代码更改为以下

jQuery(".render_menu li").on('click', function () {
            alert();

            jQuery(".render_menu li").not($(this)).addClass('hidden');

        });

您正在比较ul而不是li来添加课程

答案 2 :(得分:0)

您可以尝试以下

MASS
$('.render-menu li').on('click',function(){
 $('.render-menu li').removeClass('hidden').not(this).addClass('hidden');
});
.hidden{
color:lightgray;
}