动态地向孩子添加类

add class to a child dynamically

本文关键字:添加 孩子 动态      更新时间:2023-09-26
<li class="view">
    <a href="#"><span>Settings</span> </a>
    <ul >
      <li ><a>Leave Settings</a></li > 
      <li ><a href="compansatorysetting.aspx">Compensatory Settings</a></li>
    </ul>
</li>

我想在单击<li>时在<ul>中添加class="open"

我正在使用

$(".view").click(function () { 
   $(this).children().addClass("open"); 
});

它不起作用。有什么解决办法吗?

你需要

使用 .parent().closest('ul') 遍历到父 ul 元素:

$(".view").click(function () { 
  $(this).parent().addClass("open"); 
});

如果您希望在单击的 li 中定位内部 ul 元素,请使用.find()选择器:

$(".view").click(function () { 
  $(this).find('ul').addClass("open"); 
});
如果只想

将类分配给ul open请使用以下代码。

$(".view").click(function () { 
  $(this).children('ul').addClass("open"); 
});

更方便和更短的方法是-

$('.view').click(function(){
  $('>ul',this).addClass('open');                     
});

您使用了错误的类

$(".view").click(function () {
    $(this).children().addClass("open");
});