4

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

$("div#myDivId .myClass")

确切的选择顺序是什么?这将首先选择一个带有 ID 的 div ,myDivId然后找到其中的所有元素,myClass还是首先选择所有带有的元素,myClass然后过滤掉不在 inside 的其余元素myDivId

4

1 回答 1

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

于 2014-08-05T18:54:36.223 回答