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

Javascript $(';div:first';)。is(';:first';)返回false,为什么?,javascript,jquery,css,Javascript,Jquery,Css,这看起来像个虫子,但我不确定 据我所知,jQuerys.is()方法只会检查选择器字符串是否与调用它的元素匹配(如果传入选择器字符串ofc…) 如果您将该语句完全限定为 $('div:first').is('div:first') 它将正确返回true,但是。。这是我的脸掌: $('div:last').is(':last') 将再次正确返回true 查看它:它与您的标记有关 div:last表示标记中的最后一个div :last表示标记中的最后一个元素 它可能返回true,因为最后一个元

这看起来像个虫子,但我不确定

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

如果您将该语句完全限定为

$('div:first').is('div:first')
它将正确返回
true
,但是。。这是我的脸掌:

$('div:last').is(':last')
将再次正确返回
true


查看它:

它与您的标记有关


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

:last
表示标记中的最后一个
元素

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


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

:first
始终返回
元素,因为在有效的HTML文档中,它是您的第一个元素


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

是的,它返回true。添加了更多信息。如果html中没有html标记,将隐式创建它。它不是有效html中必需的标记<代码>hello world
是有效的htmldocument@Esailija一个有效的HTML5文档,我不认为以前的文档(例如4.01 strict/transitional)那么宽松。@pst您只需要更改这些文档的doctype<代码>hello world是有效的html 4.01。而且,是的,它不是有效的xhtml,我从来没有这样说过。我想,如果不使用javascript插入一些属性,您会发现有效的xhtml很难实现,您不得不怀疑它是否值得。