Скрыть все элементы, которые появляются после n-го элемента

После того, как найден 4-й элемент <a>, как бы я .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>

Любые идеи?

Ответы

Ответ 1

Используйте : gt (index) селектор:

$('a:gt(3)').hide();

Или более быстрая slice функция:

$('a').slice(4).hide();

Live DEMO

Поскольку : gt() является расширением jQuery, а не частью спецификации CSS, запросы с использованием: gt() не могут воспользоваться повышением производительности, предоставляемым встроенным методом запроса DOM querySelectorAll(). Для лучшей производительности в современных браузерах вместо этого используйте $( "ваш-чистый-css-selector" ). slice (index).