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

Javascript jQuery.is():首先显示不同于:last的行为,javascript,jquery,selector,Javascript,Jquery,Selector,有人能解释一下jQuery.is()函数到底是怎么回事吗 在这种情况下,我检查一个元素是否是我选择的一组元素中的第一个 <div> <ul> <li>first</li> <li>second</li> <li>third</li> <li>last</li> </ul> </div> $('

有人能解释一下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') 

返回true

选择器
:first
仅从页面上的所有元素中选择第一个元素。那个是
,试着运行
$(“:first”)
:last
在您的案例中起作用,因为last
  • 恰好也是整个页面上的最后一个元素

    您可能需要
    :类型的第一个
    :第一个孩子

    查看 选择“:first”表示选择整个文档的第一个节点。 “:last”还指向整个文档的最后一个节点,即“last”

    应该如此

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


    $('div>ul>li').last().is('div>ul>li:last')
    .last().is(':last')
    我在这里也得到了
    false
    。嗯,html代码块比我使用的版本简单得多,可能与页面上的其他html元素有关。顺便说一句,当jQuery对象没有选择任何内容时,您将获得
    true
    ,例如
    $(“#我不存在”)。first()是(“:first”)//true
    。检查jQuery对象是否包含用于以下情况的任何元素:
    true
    .naw我在jsfiddle$('div>ul')中尝试过。find('li:last')。is('li:last')返回true您尝试过做$('div>ul>li')。first().is('li:first'))是的,我决定使用:first child,但我想知道为什么li:first不会返回真值either@BruceLim
    li:first
    将匹配整个文档中的第一个
    li
    。这是正确的。请注意,如果OP页面上的最后一个元素是LI元素(看起来如此),那么这意味着OP没有将脚本元素放在底部
    :)
    @Bruce Lim:在您发布的标记中,它返回
    true
    ,但这也是一个巧合,因为组中的第一个
    li
    也是页面上的第一个
    li
    。这看起来太多余了:(我将使用:first child和:last child。我想这应该是正确的方法,因为这是一个css伪类。@Bruce Lim:你想实现什么?
    .first().is(“:first”)
    无论如何看起来都不是很有用。我使用的代码并不完全是我的代码,但我写这个问题的方式是为了表明我选择了第一个元素。无论如何,我也没有不尊重:)我试图解释“:first”和“:last”选择器的确切含义。布鲁斯误解了:“最后一个”有效,但“第一个”无效。但事实是两者都没有错。(“:last”意外工作,因为
  • last
  • 实际上是整个文档的最后一个节点。
    $('div > ul > li').last().is(':last') or
    $('div > ul').find('li:last').is('li:last')