【问题标题】:jQuery: Getting the two last list items?jQuery:获取最后两个列表项?
【发布时间】:2010-11-18 10:31:36
【问题描述】:

我想使用 jQuery 将一个特殊的类应用于无序列表中的最后两个列表项。像这样:

<ul>
<li>Lorem</li>
<li>ipsum</li>
<li>dolor</li>
<li class="special">sit</li>
<li class="special">amet</li>
</ul>

怎么做?我应该以某种方式使用 :eq 吗?

提前致谢

本都

【问题讨论】:

    标签: javascript jquery css-selectors traversal


    【解决方案1】:

    您可以使用函数slice。它非常灵活。

    $('ul li').slice(-2).addClass("special");
    

    【讨论】:

    • 我不会认为这是“原生”。
    【解决方案2】:

    另一种方法,使用andSelfprev

    $('ul li:last-child').prev('li').andSelf().addClass("special");
    

    【讨论】:

    • andSelf() 自 jQuery 1.8 起已弃用并在 3.0 中删除
    【解决方案3】:
    var items = $('ul li')
    var last_two = items.filter('li:gt('+ items.length-3 +')')
    last_two.addClass('special');
    

    【讨论】:

    • 或者:items.slice(items.length - 2).addClass('special')
    • 非常感谢,但是我该如何处理变量“last_two”?
    • last_two.addClass("special");
    【解决方案4】:
    $(function(){
    
      $("li:gt("+($("li").length-3)+")").addClass("special");
    
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-02
      • 2023-03-29
      • 1970-01-01
      • 2016-09-10
      • 1970-01-01
      相关资源
      最近更新 更多