jQuery选择器的执行顺序是什么?

时间:2013-09-09 07:09:03

标签: jquery

如果我指定了以下jQuery选择器:

$("div#myDivId .myClass")

确切的选择顺序是什么?首先会选择ID为myDivId的div,然后在其中找到myClass的所有元素,或者首先选择myClass的所有元素,然后过滤掉不在{{1}内的其余元素}}

1 个答案:

答案 0 :(得分:5)

Sizzle API(由jQuery使用)使用"从右到左"选择器令牌的顺序"执行"。

对于支持QSA的现代浏览器(本机querySelectorAll函数),Sizzle实际上会将工作委托给它,也是从右到左"。

以下是效果比较:Sizzle vs. QSA 我为您的案例创建了示例:http://jsperf.com/does-order-of-selectros-matters

另一个问题是为什么他们是"从右到左"?见这里:https://stackoverflow.com/questions/5797014/why-do-browsers-match-css-selectors-from-right-to-left