如果在css上我们有:
#divitis>*
所以我相信,它(浏览器)将开始阅读所有元素,然后检查#divitis元素,因此,它将从正确转到左
比照 Why do browsers match CSS selectors from right to left?
我的问题是:
当我们这样做时,是否有人知道children()
jquery函数是否工作方式相同:
$('#divitis').children()
它会从右到左工作:
OR,从左到右:
提前致谢。
答案 0 :(得分:0)
.children()
只会查看选择器的直接子项。
你需要的是.find()
,根据我的经验,它将“按顺序”遍历DOM树,所以从“从左到右”,意思是直接的孩子,然后是孩子的孩子,等等。
添加了一点JSFiddle以澄清:http://jsfiddle.net/qbG7x/
答案 1 :(得分:0)
在您编写$('#divitis').children()
的情况下,您实际上有两个不同的选择器,即#divitis
和> *
。
但是,因为严格遵循正常评估顺序执行两个jQuery函数调用,所以将首先评估#divitis
选择器,然后评估> *
。
因此,这是相反的顺序,如果它只是作为包含#divitis > *
的单个选择器编写的。
也就是说,浏览器转R-> L而不是L-> R的原因并不适用于此。
在应用CSS样式表时,根据每个选择器最右边的元素而不是最左边的元素,跳过不匹配CSS样式表的各个规则会更有效。
但是,在这里,您是以编程方式“编写单个规则”,因此没有需要跳过的“其他规则”。