javascript - 如何使用 jquery 向所有 li 添加类而不是单击 li

标签 javascript jquery html

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

最佳答案

首先请注意,您在 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>

关于javascript - 如何使用 jquery 向所有 li 添加类而不是单击 li,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52445656/

相关文章:

javascript - 使用淡入淡出更改 onMouseOver 上的图像源

jquery - 如何使用jquery从输入中删除按键?

css - 居中一个 div,在一个 div 内的一个 div 内 - 有什么建议吗?

javascript - Aurelia 绑定(bind)在样式复选框上

javascript - sails +布伦特里 : Unable to send the transactions details to client

javascript - 在 jQuery 中查找导致所选元素的元素列表

c# - ASP.NET 通过其部分 ID 查找控件

html - Safari 5 中不显示时间轴 div

Javascript OnMouseOver 没有属性

javascript - 使用 Azure VM Javascript SDK 从 RunCommand 获取 StdOut