<div id="all">
<div class="class1">one</div>
<div class="class1">two</div>
<div class="class1">three</div>
<div class="class1">four</div>
<div class="class2">five</div>
</div>
通过实验发现$("#all").find(".class2")
要比$("#all .class2")
性能好,为什么呢?jQuery
和CSS
都用的是Sizzle
选择器引擎,他的解析方式是从右向左。也有说如果最左边指定了id
,就会先取id
,这时是不是就会从左向右匹配了?
沒看過具體實現,不過,前者顯然是從左到右匹配,後者如果也是,性能應該一樣。既然前者性能更好,那麼顯然後者該是從右向左的了。
可以考慮再做一個測試:
測試
$("#all").find("div.class2")
和$("#all div.class2")