【发布时间】:2015-05-16 04:06:06
【问题描述】:
我目前正在使用 jQuery 进行一些 DOM 遍历,我试图在单击按钮时在 #treeList 中一次选择一个元素,但是一旦它通过第二个列表 #innerList,它将选择该列表中的所有元素,然后单击该列表继续向下。您如何像使用 #treeList 一样继续使用 #innerList?
$("#MoveDown").click(function() {
$('.parentStyle + li, li:eq(0)')
.last()
.addClass('parentStyle').siblings('li')
.removeClass('parentStyle');
});
.parentStyle {
background-color: #F99;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<ul id="treeList">
<li class="parent">Aunt Grace</li>
<li class="parent">Mother Joan</li>
<li class="parent">Father Joe
<ul id="innerList">
<li class="child">Son John</li>
<li class="child">Son James</li>
<li class="child">Daughter Aine</li>
</ul>
</li>
<li class="parent">Uncle Tom</li>
<li class="parent">Aunt Jen</li>
</ul>
</div>
<button id="MoveDown">Move down</button>
【问题讨论】:
-
如果您只想在当前选中时选择
Father Joe,则需要添加span或div换行,以便添加颜色。要选择子li,您需要重新编写整个代码:jsfiddle.net/d5mh5qzs/1 -
我什至没有考虑使用索引...使用颜色的唯一真正原因是表明选择是在单击按钮时进行的。谢谢,非常感谢!
-
您是否要遍历上面的列表,如果您到达包含 UL 的 LI,则在继续下一个 LI 之前遍历该 LI?还是要穿越第一层,然后进入第二层?
-
刚刚注意到您的代码示例。哈哈。将为您更新我的答案。显然我是盲人。
标签: jquery html css jquery-click-event jquery-traversing