jQuery .is():首先显示不同的行为:last

时间:2013-02-04 19:17:37

标签: javascript jquery selector

任何人都可以向我解释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') 

返回true

2 个答案:

答案 0 :(得分:5)

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

您可能需要:first-of-type:first-child

答案 1 :(得分: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')