javascript - 隐藏除选定的之外的所有 LI

标签 javascript jquery html-lists

我想隐藏某个 UL 中除我选择的 LI 之外的所有其他 LI。

<ul>
  <li><div></div></li>
  <li><div></div></li>
</ul>
<ul>
  <li><div></div></li>     -- HIDE
  <li><div></div></li>     -- SELECT
  <li><div></div></li>     -- HIDE
</ul>
<ul>
  <li><div></div></li>
  <li><div></div></li>
</ul>

我怎样才能最好地解决这个问题?

我尝试过使用索引,但在使其正常工作以及选择正确的 UL 时遇到一些问题。正如您所看到的,我没有 UL 或 LI 的类(class),所以我认为唯一的选择是 LI。

我真正做的是在 LI 中选择一个 div,这样我就可以通过以下方式获取所选 LI 的索引:

var li_index = $(this).parent().index();

最佳答案

从被单击的 div 向上遍历 DOM,然后使用 .not($(this).parent()).toggle() 隐藏其他元素 -> 不是 li 包围此 div

$('div').click(function () {
    $(this).closest('ul').find('li').not($(this).parent()).toggle();
});
如果您不希望用户能够撤销其决定,则可以将

.toggle() 替换为 .hide()

JS fiddle :http://jsfiddle.net/tDmy3/2/

关于javascript - 隐藏除选定的之外的所有 LI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11113707/

相关文章:

javascript - Codeigniter 3 - Ajax 文件上传(您没有选择要上传的文件)

html - 左对齐的嵌套列表 "bullets"

javascript - 如何使用 moment.js fromNow 方法获取天数

javascript - Node.js 在几次请求后卡住

javascript - 无法读取 JSON - 无法读取未定义的属性

javascript - 将所有 jquery ui-interaction-states 应用于所有 jquery ui-widget-content

当 API http 请求出现 json 错误(未找到)时,javascript 警报不起作用

jQuery UI 对话框 - 关闭按钮不起作用

jquery - 使用 jQuery 将列表项从一个列表复制到另一个列表

html - 如何在 ul 元素中水平对齐我的 li?