从hide()操作中排除父元素及其子元素

时间:2012-05-22 20:17:12

标签: javascript jquery html

我正在构建此菜单,但我在排除父母及其子女时遇到问题。我希望在没有额外课程的情况下解决这个问题。

所以它假设工作的方式是点击a.clicked.hide() li elements在其自己的li之外,但在{{1}的范围内}}

找到父ul并在我ul的{​​{1}}上放一个课没问题。这里很难排除li内的所有元素。 它确实听起来很乱,所以我尽量在剧本中尽可能地评论。

感谢大家的投入

编辑:我做了一个糟糕的工作解释,但是我点击li.activeli.active假设隐藏,这就是模式,因为我们在菜单中深入了2 - 1等

首先是演示: http://jsfiddle.net/Abj9u/6/

level 1 - 1

HTML

level 1 - 2

2 个答案:

答案 0 :(得分:1)

也许这个:

$(this).closest('li').siblings().hide()

至于为什么这有效,它是相当自我解释的:

  • 从这个子元素开始......
  • 找到第一个父母......
  • 然后找到所有这些李的兄弟姐妹......
  • 隐藏它们。

答案 1 :(得分:0)

如何找到树的下一个ul,隐藏所有li,然后只显示当前的li

$this.parents('ul:first > li').hide();
$this.parent().show();

编辑:另一个答案是更好的解决方案......