Скрыть все элементы, которые появляются после 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).
Ответ 2
Решение CSS
ul li:nth-child(n+5) {
display: none
}
http://jsfiddle.net/mckanet/Sp6yE/
Ответ 3
Проще всего:
$("a:gt(3)").hide();
DEMO: http://jsfiddle.net/gmrvK/