仅更改主<li>标记的类

tan*_*nya 0 javascript jquery

我有以下unorderered列表代码,显示以下列表:

<ul>
  <li name="EMI7428"><ins class="jstree-icon2">&nbsp;</ins><a href="#"><ins class="jstree-icon2">&nbsp;</ins>organ</a>
  <ul>
  <li name="EMI7436"><ins class="jstree-icon2">&nbsp;</ins><a href="#"><ins class="jstree-icon2">&nbsp;</ins>sub organ1</a>
  <ul>
  <li name="EMI8217"><ins class="jstree-icon2">&nbsp;</ins><a href="#"><ins class="jstree-icon2">&nbsp;</ins>sub organ2</a>
  <ul> 
  <li name="EMI8224"><ins class="jstree-icon2">&nbsp;</ins><a href="#"><ins class="jstree-icon2">&nbsp;</ins>sub organ3</a>
  <ul>
  <li name="EMI7428"><ins class="jstree-icon2">&nbsp;</ins><a href="#"><ins class="jstree-icon2">&nbsp;</ins>sub organ4</a>
  </li></ul>
  </li></ul>
  </li></ul>
  </li></ul>
  </li>
</ul> 
Run Code Online (Sandbox Code Playgroud)
      器官
        子器官1
          子器官2
            子器官3
              子器官4

当用户点击按钮时,我想更改要更改的<ins>特定<li>标记的标记类.

我使用下面的代码来更改<ins>标记的类.

$j("li[name='"+emi_id+"'] ins").attr("class","jstree-icon2"); // set class to display new icon
Run Code Online (Sandbox Code Playgroud)

它工作正常,除了以下错误.如果用户选择第一个<li>标签(EMI7428),该<ins>标签内的<li>所有标签(该<ins>标签内<ul>找到的所有<li>标签)都会更改其类,这不是我想要的行为.我想只<li>更改属于具有特定名称的标签的ins标签的类,并且我不希望更改传播到内部<ul>.

如果有人可以帮助我,我真的很感激.

Jam*_*xon 5

我认为你想要的选择器是:

$j("li[name='"+emi_id+"'] > ins")
Run Code Online (Sandbox Code Playgroud)

>符号选择所有与li 直接相关的元素,而不是子项非直接子元素.