2

我一直在使用来自堆栈溢出的一段 jquery 代码。这是该页面的链接:

https://stackoverflow.com/questions/2...76196#13976196

我需要隐藏除根元素之外的大型 UL 树结构。上面的代码效果很好,除了我无法理解以下行:

代码:

$('ul, li', $('#lesson-sidebar ul li')).hide();

该代码隐藏了列表中的所有 UL 和 LI 项,但不包括根元素。我不明白添加$('#lesson-sidebar ul li')为第二个选择器参数如何将其从隐藏命令中排除。

我知道隐藏命令不会切换可见状态,因此它们不像隐藏根元素并立即显示它。大多数其他描述依赖于 :not 等命令来排除根元素。

谁能解释为什么根元素没有被该命令隐藏?请注意,如果我删除该$('#lesson-sidebar ul li')部分,根元素实际上是隐藏的。

4

1 回答 1

3

$('ul, li', $('#lesson-sidebar ul li'))意味着

选择所有ulli孩子$('#lesson-sidebar ul li')

这是该选择器的模式$('children selector', parent) 正如您在示例中看到的那样,父级不是字符串,它是 DOM 或 jQuery 元素

于 2012-12-20T16:31:34.587 回答