包含子选择器的jQuery查找
Posted
技术标签:
【中文标题】包含子选择器的jQuery查找【英文标题】:jquery find with child selector included 【发布时间】:2011-11-13 23:18:13 【问题描述】:我确信这是众所周知的,但我只是偶然发现了这一点。使用 jquery find() 结合子选择器。
这样的结构。
<div id="first">
<div></div>
<div></div>
<div><div></div></div>
</div>
然后使用jquery find先抓取其中的div,不包括内部div。
$('#first').find('>div');
虽然选择器规范说明了这一点,但表明 > 后跟一些东西会抓住所有孩子。
E > F 匹配作为元素 E 的子元素的任何 F 元素。
所以我的问题是 jQuery 在该声明中实际上在说什么。似乎是说抓住直接的孩子,不包括它的孩子。这是一个准确的说法吗?
【问题讨论】:
有什么理由不只是使用$('#first > div')
?
也许有帮助:jsfiddle.net/2nP5m
这不是我的代码,我正在做一个灯丝组练习,他们就是这样写的。
请注意关于该语法将如何在未来的 jQuery 版本中被弃用的警告:api.jquery.com/child-selector
【参考方案1】:
有了这个小提琴:http://jsfiddle.net/jTpee/3/
好像只取第一级的孩子
但正如他们所说,你也可以使用这个:http://jsfiddle.net/jTpee/2/
【讨论】:
那个例子让我点击了。出于某种原因,我没有将其可视化为#first > div。 .find() 让我失望了。 如果对您有帮助,也许您可以将其写为已接受的答案;)【参考方案2】:试试这个。它只会返回第一级的孩子。
$('#first > div');
【讨论】:
以上是关于包含子选择器的jQuery查找的主要内容,如果未能解决你的问题,请参考以下文章
包含类、子选择器和相邻兄弟选择器的 CSS 选择器的等效 XPath 是啥?
[ jquery 过滤器 prevUntil([exp|ele][,fil]) ] 此方法用于在选择器的基础之上搜索查找当前元素之前所有的同辈元素,直到遇到匹配的那个元素为止