我有以下未列出的列表代码,显示以下列表:
<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>
器官
sub organ1
sub organ2
sub organ3
sub organ4
当用户点击某个按钮时,我想更改要更改的特定<ins>
标记的<li>
标记的类。
我正在使用以下代码更改<ins>
代码的类。
$j("li[name='"+emi_id+"'] ins").attr("class","jstree-icon2"); // set class to display new icon
除了以下错误外,它工作正常。如果用户选择了第一个<li>
标记(EMI7428),则<ins>
标记内的所有<li>
标记(<ins>
内的所有<ul>
标记都会找到<li>
标签)改变了他们的类,这不是我想要的行为。
我希望只更改属于具有特定名称的<li>
标记的ins标记的类,并且我不希望更改传播到内部<ul>
。
如果有人能帮我解决这个问题,我真的很感激。
答案 0 :(得分:5)
我认为你想要的选择器是:
$j("li[name='"+emi_id+"'] > ins")
>
符号选择所有属于li的直接后代的元素,而不是子项非直接子元素。
答案 1 :(得分:2)
看看这里:http://api.jquery.com/child-selector/
li[name='"+emi_id+"'] > ins