jQuery :first-child 選擇器使用上并不是望文生義的。
例如,$("p:first-child")
似乎是選取任何一個(gè)<p>標(biāo)簽內(nèi)第一個(gè)子元素。實(shí)際上并不是這樣。準(zhǔn)確的理解是,選擇任何一個(gè)容器內(nèi)的第一個(gè)p元素,而且要求p元素是該容器內(nèi)第一個(gè)子元素。
例子一:
<body>
<p>第一段</p>
<p>第二段</p>
</body>
$("p:first-child")可以命中第一段(也僅有第一段),因?yàn)榈谝欢问莃ody容器中第一個(gè)p元素,且是body容器中第一個(gè)元素。
例子二:
<body>
<span>別的文字</span>
<p>第一段</p>
<p>第二段</p>
</body>
$("p:first-child")沒有任何命中,因?yàn)榈谝欢问遣⒎鞘莃ody容器中第一個(gè)元素。
例子三:
<body>
<p>第一段</p>
<div><p>第二段</p></div>
</body>
$("p:first-child")會(huì)命中第一段和第二段。記住,它會(huì)選擇任何一個(gè)容器內(nèi)的第一個(gè)p元素,只要p元素是該容器內(nèi)第一個(gè)子元素。
例子四:
<body>
<div id="id1"><p>第一段</p></div>
<div id="id2"><p>第二段</p></div>
</body>
我只想命中第二段怎么辦?那就這樣:
$("#id2 p:first-child")