为什么jquery选择器从右到左工作?

时间:2015-05-19 05:28:14

标签: jquery

最近我正在阅读有关jquery选择器如何工作的内容。 看起来它从右到左看着一切 例如,$('.myclass span')将在dom中查找所有span标记,然后它将检查myclass是否是任何这些标记的父类。

我也明白css恰恰相反。我知道这两种方式效率都很低。

我想知道是否有特殊原因。

这是我声明的两个来源:

http://code.tutsplus.com/tutorials/quick-tip-think-right-to-left-with-jquery--net-18052 https://www.airpair.com/angularjs/posts/jquery-angularjs-comparison-migration-walkthrough

1 个答案:

答案 0 :(得分:1)

这基本上就是你感知选择器的方式你引用Descendant Selector (“ancestor descendant”)并根据你的理解它" 将在dom中查找所有span标签然后它会检查myclass是否是其中任何一个的父类"但jQuery文档说

  

选择作为给定祖先后代的所有元素。

$('.myclass span')

这里我们有.myclass作为祖先和跨越作为后代。在你的例子中,对于我来说,Ancestor应该首先进入选择器,因为它在DOM中添加后代之前添加到DOM中似乎更合乎逻辑。它出现在它的后代之前的html中。

由于jQuery的内部工作以相反的顺序查找元素,但这是jQuery程序员完全抽象的。对于程序员来说,选择器的顺序与他在html中看到的相反。