孙子的选择器,或如何将选择器锚定在已知元素上

Posted

技术标签:

【中文标题】孙子的选择器,或如何将选择器锚定在已知元素上【英文标题】:Selector for grandchildren, or how to anchor the selector on a known element 【发布时间】:2012-06-05 02:20:55 【问题描述】:

假设我有一个元素层次结构,#root 位于其根部。我可以使用$('#root > * > *') 来获取它的所有孙子。如果我已经有$('#root'),有什么办法可以做到这一点?

$('#root').find('* > *') 绝对不是,因为它会很高兴地从第一颗星的任何后代“开始”,而不仅仅是 #root 孩子。

jQuery 中是否有任何函数可以“锚定”在当前元素上,从其子元素或自身开始?它困扰了我一段时间,我在文档中找不到类似的东西。

【问题讨论】:

.find() 可能是有史以来最烦人的 jQuery 遍历方法。 【参考方案1】:

要么以另一个> 开始查找表达式(此语法为documented):

// This is functionally the same as $('#root > * > *')
$('#root').find('> * > *')

或致电.children() 两次:一次为它的孩子,一次为它的孙子:

$('#root').children().children()

【讨论】:

是的,我知道.children() 的事情,但是......好吧,不适合我正在做的事情,我真的想要选择器的事情。还有选择器……哇,我从没想过要尝试,太棒了。知道它有多坚固吗?我有点担心它没有记录 - 现在可以工作,但能持续多久? @Amadan:我对此一无所知......它似乎已经工作了一段时间。 我已经更新了这篇文章,以反映该功能现已记录在案。 @JDB:差不多是时候了。谢谢! 谢谢,真的很有帮助:)

以上是关于孙子的选择器,或如何将选择器锚定在已知元素上的主要内容,如果未能解决你的问题,请参考以下文章

03-高级选择器

03-高级选择器

03-高级选择器

jQuery选择器之层级选择器

如何让 Hololens 全息图锚定在物理环境中?

结构伪类选择器的误解(nth-of-type,nth-child等等结构伪类选择器应用在孙子辈元素上出现错误)