隐藏第n个元素后面的所有元素

Mic*_*sby 17 html jquery

<a>找到第4个元素后,.hide()剩下的我怎么办?下面是我到目前为止编写的代码:

<script src="http://code.jquery.com/jquery-latest.js"></script>

<script>
    $(document).ready(function() {
        if($('a').length >= 4) {
            window.alert('4 or more');
        }
    });
</script>

<a>test </a><br>
<a>fed </a><br>
<a>fdes </a><br>
<a>grr </a><br>
<a>rerf </a><br>
<a>dferf </a>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

gdo*_*ica 19

使用:gt(索引)选择器:

$('a:gt(3)').hide();
Run Code Online (Sandbox Code Playgroud)

或更快的slice功能:

$('a').slice(4).hide();
Run Code Online (Sandbox Code Playgroud)

现场演示

因为:gt()是一个jQuery扩展而不是CSS规范的一部分,使用:gt()的查询无法利用本机DOM querySelectorAll()方法提供的性能提升.为了在现代浏览器中获得更好的性能,请使用$("your-pure-css-selector").slice(index).


小智 15

CSS解决方案

ul li:nth-child(n+5) {  
    display: none
}
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/mckanet/Sp6yE/