jquery children()是否从右向左读取?
如果,在css上,我们有:jquery children()是否从右向左读取?,jquery,Jquery,如果,在css上,我们有: #divitis>* 因此我相信,它(浏览器)将开始读取所有元素,然后检查#divitis元素,因此,它将从右向左移动 比照。 我的问题是: 当我们执行以下操作时,是否有人知道children()jquery函数的工作方式是否类似: $('#divitis').children() 它能从右向左工作吗 检查子对象的子对象的所有元素 检查作为子元素的子元素的所有元素 检查所有子元素 抓住#divitis的第一个孩子 或者,从左到右: 扫描所有元素并从#div
#divitis>*
因此我相信,它(浏览器)将开始读取所有元素,然后检查#divitis元素,因此,它将从右向左移动
比照。
我的问题是:
当我们执行以下操作时,是否有人知道children()
jquery函数的工作方式是否类似:
$('#divitis').children()
它能从右向左工作吗
.children()
将只查看选择器的直接子级。
您需要的是.find()
,根据我的经验,它将“按顺序”遍历DOM树,即从“左”到“右”,意思是先直接遍历子对象,然后遍历子对象的子对象,依此类推
添加了一点JSFIDLE进行澄清:在您编写的
$(“#divitis”).children()
中,实际上有两个不同的选择器,即\divitis
和*
但是,由于两个jQuery函数调用严格按照正常的求值顺序进行,因此将首先求值#divitis
选择器,然后求值*
因此,如果它只是作为包含#divitis>*
的单个选择器编写,则顺序与此相反
也就是说,浏览器选择R->L而不是L->R的原因在这里并不适用
当应用CSS样式表时,基于每个选择器最右边的元素跳过CSS样式表中不匹配的单个规则比基于最左边的元素更有效
不过,在这里,您是在以编程方式“编写一条规则”,因此没有需要跳过的“其他规则”。恐怕您问的问题不太清楚。
children()
不是选择器。你的意思是你想从右到左阅读哪一位?我不知道从右到左(因为DOM是从上到下排列的),但是一些快速测试会建议它从上到下(DOM的自然流)进行阅读。也许这会帮助你复制我仍然不明白的内容,抱歉。你说过浏览器选择R->L而不是L->R的原因不适用。但是你也说拥有$('#divitis>*')
与$('#divitis').children()的顺序相反。。。最后,我不知道它的工作原理是否不同。对不起,我的英语不是很熟练。第一杯,我会说,#divitis>*
可能比$(“#divitis”)慢。children()
@MEM这将是我的评估-#divitis>*
比#divitis.children()慢。R->L顺序允许浏览器简单地丢弃不匹配的CSS规则。在jQuery代码行中没有“不匹配”规则,只有一个“规则”。