浅谈jquery选择器 :first与:first-child的区别

一个例子:

<ul>
 <li>John</li>
 <li>Karl</li>
 <li>Brandon</li>
</ul>
<ul>
 <li>Glen</li>
 <li>Tane</li>
 <li>Ralph</li>
</ul>

first表示(所有父元素合并后的)第一个;first-child表示(每个父元素的)第一个

$('ul li:first') 返回john所在的li。 查找所有ul下第一个li元素

$("ul li:first-child") 返回 john glen。 查找每个ul下第一个元素是li元素dom元素。

扩展用法:$("body *:first")表示body下的第一个孩子元素; $("body *:first-child")表示body下的每一个是第一个孩子元素的元素

另外,css选择器从右往左,如果是这样;

<ul>
 <li>John</li>
 <li>Karl</li>
 <li>Brandon</li>
</ul>
<ul>

<div>DIV</div>
 <li>Glen</li>
 <li>Tane</li>
 <li>Ralph</li>
</ul>

那么$("ul li:first-child") 只返回John. 查找每个的第一个孩子元素,如果是li元素则匹配,否则不匹配.

$('li:first‘)匹配第一个li元素  $("li:first-child")匹配第一个li元素,它是某个元素的第一个孩子元素

相关推荐