假设foo
我的页面上有很多带有特定类的元素。所有这些元素都保证在 element 内ancestor
。
以下哪个查询会更快:
$match = $(ancestor).find('.foo')
对比$match = $('.foo')
对于一般查询,我知道第一种选择应该更快,但是当我纯粹基于类进行查询时,这仍然成立吗?
我的部分困惑还源于阅读了推荐第一种类型的人的帐户(至少对于一般查询),但我最近也读到浏览器的本机实现
ancestor.querySelectorAll('.foo')
并不比document.querySelectorAll('.foo')
- 明显的原因是前者是通过调用后者然后过滤掉不属于的元素来实现的ancestor
。
编辑
正如有人指出的那样,我可以自己测试一下。我确实打算这样做。但是,如果有人能解释为什么选择使用jQuery
应该受益于范围界定而querySelectorAll
不是(再次,假设所有匹配元素都在一个已知的祖先内,所以范围界定不会以任何方式改变结果)