标题是有点混乱的元素,但这里是我所追求的:如何选择一组是另一种元素的儿童
我有一组包含所有在该
h3
元素的元素页。
用jQuery语言:var mySet = $('h3')
。我也有一个div元素
var myContainer = $('div#foo')
我需要找到一组
mySet
是的myContainer
儿童的所有项目。
任何想法?我敢打赌,这里有一些神奇的衬垫,但我想不出来。我宁愿不是手动循环遍历集合中的每个元素,并使用.closest(myContainer)
或类似的东西来确定关系。
请注意,在我的场景中,我不能使用像$('div#foo h3')
这样的新选择器(这太容易了),因为我没有访问实际的选择器值。所以它必须是动态的。
就像通过myContainer.children循环一样,然后比较每个mySet(最差的情况)。 – unomi 2010-06-16 09:39:30
@unomi - 这基本上是相交的两组,所以是的,你必须经历两者。就复杂性而言,它可以在'nlogn'中完成,而这可能是'n²'。请注意,我并没有假设有一位父母。 – Kobi 2010-06-16 09:47:57
我的答案是我的意思是,最初的选择器实际上是可用的,就像Andy E所证实的那样 - 但是正如你后来所说的那样,它们可能不一定是“纯粹的”选择器生成的列表,它使我的建议没有意义。如果性能是一个问题,您应该确保smallset.filter(largeset)并可选地从大集合中删除匹配。 – unomi 2010-06-16 09:56:56