我有以下unorderered列表代码,显示以下列表:
<ul>
<li name="EMI7428"><ins class="jstree-icon2"> </ins><a href="#"><ins class="jstree-icon2"> </ins>organ</a>
<ul>
<li name="EMI7436"><ins class="jstree-icon2"> </ins><a href="#"><ins class="jstree-icon2"> </ins>sub organ1</a>
<ul>
<li name="EMI8217"><ins class="jstree-icon2"> </ins><a href="#"><ins class="jstree-icon2"> </ins>sub organ2</a>
<ul>
<li name="EMI8224"><ins class="jstree-icon2"> </ins><a href="#"><ins class="jstree-icon2"> </ins>sub organ3</a>
<ul>
<li name="EMI7428"><ins class="jstree-icon2"> </ins><a href="#"><ins class="jstree-icon2"> </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>.
如果有人可以帮助我,我真的很感激.
我认为你想要的选择器是:
$j("li[name='"+emi_id+"'] > ins")
Run Code Online (Sandbox Code Playgroud)
该>符号选择所有与li 直接相关的元素,而不是子项非直接子元素.