如何使用jQuery更改多个嵌套列表中的并发列表项
How to alter concurrent list items from multiple nested lists with jQuery
如果我有以下嵌套列表
<ul>
<li class="hide">list 1.1</li>
<li>list 1.2</li>
<li>list 1.3
<ul>
<li>list 2.1</li>
<li class="hide">list 2.2</li>
<li>list 2.3
<ul>
<li id="list-item">list 3.1</li>
<li class="hide">list 3.2</li>
</ul>
</li>
<li class="hide">list 2.4</li>
<li class="hide">list 2.5</li>
</ul>
</li>
<li class="hide">list 1.4</li>
</ul>
如何使用jquery显示项目3.2、2.4、2.5和1.4,而不显示其他隐藏项目。(在显示的树中,这些项目都是相邻的,即使它们来自不同的列表。)
我尝试了以下操作,但没有成功——它只会隐藏下一个li。
$("li").find("#list-item").nextUntil(":not(.hide)").removeClass("hide");
如何让它从所有li元素中选择,而不仅仅是当前ul中的元素?
编辑添加:以下是JS Bin的一个示例:http://jsbin.com/usoyul/2/edit
我开发了一个详细的解决方案。如果有人有更好的解决方案,那么我希望看到它。
var found = false;
$.each($("li"), function(i, li){
var $li = $(li);
if($li.attr("id") === "list-item"){
found = true;
return true; // Continue the .each
}
if(!found)
return true; // Continue the .each
if(!$li.hasClass('hide'))
return false; // Exit the $.each
$li.removeClass('hide');
return true; // Continue the .each
});
http://jsbin.com/usoyul/4/edit
相关文章:
- 要求输入在数据列表中
- 从javascript创建一个列表
- 如何使用jQuery选择下拉列表的值
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- Javascript按钮下拉列表
- 如何使用json将对象列表从java转换为javascript
- 区分JSON中的矩阵和列表列表
- jQuery表单添加不适用于下拉列表
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 接受不在列表中的值-引导组合框
- 禁用jQuery中的下拉列表
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- 如何在javascript中迭代数字列表
- 如何在按钮中显示下拉列表中选定的元素
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- 鼠标悬停事件影响列表中所有行中的按钮,而不仅仅是特定按钮
- 使用图像数组列表的simplegallary.js显示适合桌面屏幕的图像
- 如何在从多选下拉列表中选择选项值时动态生成文本框
- 如何使用jQuery更改多个嵌套列表中的并发列表项