孙子的选择器,或如何将选择器锚定在已知元素上
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:差不多是时候了。谢谢!
谢谢,真的很有帮助:)以上是关于孙子的选择器,或如何将选择器锚定在已知元素上的主要内容,如果未能解决你的问题,请参考以下文章