【问题标题】:How to select last child element in jQuery?如何在jQuery中选择最后一个子元素?
【发布时间】:2011-06-04 12:14:17
【问题描述】:

如何在 jQuery 中选择最后一个子元素?

只是最后一个孩子,而不是它的后代。

【问题讨论】:

    标签: jquery jquery-selectors


    【解决方案1】:

    您也可以这样做:

    <ul id="example">
        <li>First</li>
        <li>Second</li>
        <li>Third</li>
        <li>Fourth</li>
    </ul>
    
    // possibility 1
    $('#example li:last').val();
    // possibility 2
    $('#example').children().last()
    // possibility 3
    $('#example li:last-child').val();
    

    :last

    .children().last()

    :last-child

    【讨论】:

    • 我不认为children().last():last-child 是相等的。在这个例子中 - 是的,但是假设你有两个列表(class="example"),然后尝试从两个列表中选择最后一个元素......
    • @alekwisnia 见下面我的例子。
    • 哪种方式最快?
    • @Vic 我不能给你确切的答案,但选项 3 是合乎逻辑的。因为选项 2 使用 children() 两次跳转到 DOM。选项 1 只执行一次,但自定义/jQuery 伪选择器 :last:last-child 已经存在很长时间了,在我看来这将是最快的并且需要更少的计算时间来实现结果。跨度>
    • $('#example').children().last() 工作正常
    【解决方案2】:

    性能方面:

    $('#example').children().last()
    

    或者,如果您想要最后一个具有上述特定班级的孩子。

    $('#example').children('.test').last()
    

    或具有特定类的特定子元素

    $('#example').children('li.test').last()
    

    【讨论】:

      【解决方案3】:

      通过使用:last-child selector?

      您是否有需要帮助的特定场景?

      【讨论】:

        【解决方案4】:

        2019 年 ...

        jQuery 3.4.0 正在弃用 :first, :last, :eq, :even, :odd, :lt, :gt, 和:nth。当我们移除 Sizzle 时,我们将用一个小包装器替换它 围绕querySelectorAll,几乎不可能 在没有更大的选择器引擎的情况下重新实现这些选择器。

        我们认为这种权衡是值得的。请记住,我们仍将支持位置方法,例如 .first、.last 和 .eq。你可以用位置选择器做的任何事情,你都可以用位置方法来代替。无论如何,它们的表现更好。

        https://blog.jquery.com/2019/04/10/jquery-3-4-0-released/

        所以你现在应该改用.first().last()(或不使用jQuery)。

        【讨论】:

          【解决方案5】:

          如果你想选择最后一个子元素并且需要指定元素类型,你可以使用选择器last-of-type

          这是一个例子:

          $("div p:last-of-type").css("border", "3px solid red");
          $("div span:last-of-type").css("border", "3px solid red");
          
          <div id="example">
                      <p>This is paragraph 1</p>
                      <p>This is paragraph 2</p>
                      <span>This is paragraph 3</span>
                      <span>This is paragraph 4</span>
                      <p>This is paragraph 5</p>
                  </div>
          

          在上面的示例中,第 4 段和第 5 段都将有一个红色边框,因为第 5 段是 div 中“p”类型的最后一个元素,而第 4 段是 div 中的最后一个“span”。

          【讨论】:

            【解决方案6】:

            大家好,请试试这个属性

            $( "p span" ).last().addClass( "highlight" );
            

            谢谢

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2015-10-26
              • 2017-11-28
              • 2016-01-30
              • 1970-01-01
              • 2012-12-25
              • 2021-10-26
              相关资源
              最近更新 更多