jQuery:获取最后两个列表项?

pon*_*joh 20 javascript jquery traversal css-selectors

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

<ul>
<li>Lorem</li>
<li>ipsum</li>
<li>dolor</li>
<li class="special">sit</li>
<li class="special">amet</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

如何?我应该使用:eq不知怎的?

提前致谢

vko*_*min 51

您可以使用功能切片.它非常灵活.

$('ul li').slice(-2).addClass("special");
Run Code Online (Sandbox Code Playgroud)

  • 我不会认为这是"本土的". (2认同)

CMS*_*CMS 24

另一种方法,使用andSelfprev:

$('ul li:last-child').prev('li').andSelf().addClass("special");
Run Code Online (Sandbox Code Playgroud)


def*_*rex 5

var items = $('ul li')
var last_two = items.filter('li:gt('+ items.length-3 +')')
last_two.addClass('special');
Run Code Online (Sandbox Code Playgroud)