spl*_*ter 152
CSS3可以实现.考虑标记:
<ul>
<li><a href="">First item</a></li>
<li>Second item</li>
<li><a href="">Test</a></li>
<li><a href="">Test</a></li>
<li><a href="">Pre-last item</a></li>
<li><a href="">Last item</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
要选择最后两个LI元素:
ul > li:nth-last-of-type(-n+2) {
background: green;
}
Run Code Online (Sandbox Code Playgroud)
适用于所有当代浏览器,包括IE9,但不包括IE8及以下版本.要添加对这些浏览器的支持,您可以考虑使用Selectivizr.js
不幸的是这是不可能的。。忽略这个答案并查看下面的 spliters 答案。
如果可能的话,它看起来会像......
ul li:last-child+li {...}
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为 + 将选择最后一个子级之后的直接兄弟级(当然,这没什么)。没有紧邻的前一个选择器。
使用 jQuery 有不同的方法可以实现这一点,性能最好的方法是......
var lastItems = $("#list li");
lastItems.slice(lastItems.length - 2).addClass("whatever");
Run Code Online (Sandbox Code Playgroud)