eq和nth-child DOM搜索

时间:2013-06-07 22:26:08

标签: jquery css

通过在我的浏览器中进行测试,似乎eq从上到下搜索DOM树,并在找到第一个元素后停止。

而nth-child从上到下搜索整个DOM树,并沿途瞄准所有相关元素。

示例:

$('div').children('p:nth-child(2)').css('color', 'red')

$('div').children('p').eq(3).text('text edited with (eq)');

一旦找到元素,eq是否真的停止了DOM搜索?

1 个答案:

答案 0 :(得分:3)

在这两种情况下,将首先搜索整个DOM以获取DIV。

在第一种情况下,将检查这些DIV的第三个孩子是否是P.这是一个非常短的搜索,因为它不是在寻找第3段而是第3个孩子。所以,是的,它在指定的第n个子节点之后停止,而不管元素类型如何,因为它不需要进一步搜索。

在第二种情况下,查询搜索所有P(即那些DIV的子节点),然后搜索该子集以查看是否有第三段。因此,在这种情况下,它不会在第3个P停止,因为它首先找到所有P,然后逐渐消失。