繁体   English   中英

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

[英]How to add class to all li but not to clicked li using jquery

我想向所有li添加一个hidden类,但不向单击的li添加一个hidden类。 我该如何使用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');
});

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

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

 $(".render-menu li").on('click', function() { $(this).siblings().addClass('hidden'); }); 
 .hidden { display: none; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <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> 

将您的JS代码更改为以下内容

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

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

        });

您正在比较ul而不是li添加类

您可以尝试以下

 $('.render-menu li').on('click',function(){ $('.render-menu li').removeClass('hidden').not(this).addClass('hidden'); }); 
 .hidden{ color:lightgray; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <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> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM