$('div:first').is(':first')返回false,为什么?

And*_*old 3 javascript css jquery

这看起来像一个bug,但我不确定.

据我所知,jQuerys .is()方法只会检查选择器字符串是否与您调用它的元素匹配(如果传入选择器字符串ofc ...)

如果你完全符合声明的条件

$('div:first').is('div:first')
Run Code Online (Sandbox Code Playgroud)

它会正确返回true,但是......这里有一个facepalm对我来说:

$('div:last').is(':last')
Run Code Online (Sandbox Code Playgroud)

将再次,正确返回true.

看看:http://jsfiddle.net/d6UGw/

Ste*_*ley 5

它与您的标记有关.


div:last表示div标记中的最后一个.

:last表示element标记中的最后一个.

它可能会返回true,因为你的最后一个元素是div.


div:first 表示标记中的第一个div.

:first总是返回<html>元素,就像在有效的HTML文档中一样,它是你的第一个元素.

因此$('div:first').is(':first'),永远不要在有效的HTML文档中返回true.