2

谁能向我解释一下 jQuery .is() 函数到底发生了什么?

我有一种情况,我正在检查一个元素是否是我选择的一组元素中的第一个。

<div>
   <ul>
      <li>first</li>
      <li>second</li>
      <li>third</li>
      <li>last</li>
   </ul>
</div>

$('div > ul > li').first().is(':first') or
$('div > ul').find('li:first').is('li:first') 

返回 false....这是怎么回事?

$('div > ul > li').last().is(':last') or
$('div > ul').find('li:last').is('li:last') 

返回真

4

2 回答 2

5

选择器:first只是从页面上的所有元素中选择第一个元素。那就是<html>,试试跑步$(":first"):last适用于您的情况,因为最后一个<li>也恰好是整个页面上的最后一个元素。

您可能想要:first-of-type:first-child相反。

于 2013-02-04T19:22:04.127 回答
1

http://jsfiddle.net/MvWcv/1/ 当你选择':first'时,意味着你选择了整个文档的第一个节点。':last' 也指向整个文档的最后一个节点,即“last”。

因此应该是

$('div > ul > li').first().is('div > ul > li:first')

$('div > ul > li').last().is('div > ul > li:last')

于 2013-02-04T19:26:55.057 回答