如果我指定了以下jQuery选择器:
$("div#myDivId .myClass")
确切的选择顺序是什么?首先会选择ID为myDivId
的div,然后在其中找到myClass
的所有元素,或者首先选择myClass
的所有元素,然后过滤掉不在{{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