Я хочу сделать длинный список коротким, скрывая некоторые элементы в длинных подсписках без дополнительной обработки на стороне сервера. Проблема в том, что разметка, исходящая от сервера, не контролируется мной и не предназначена для облегчения моей работы. вот код
<ul id="long-list">
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="header"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="header"></li>
<li class="item"></li>
.
.
.
</ul>
Как вы заметили, заголовки совпадают с предметами. Теперь я хочу иметь код jQuery, который показывает только 3 элемента после каждого заголовка и скрывает остальные, чтобы сделать список короче и более удобным для использования.
Вот моя попытка, которая не работает:
$('#long-list li.header ~ li.item:gt(3)').hide();
$('#long-list li.header ~ li.item:lt(3)').show();
$('#long-list li.header').show();
Дополнительная функция - добавление узла внизу каждого раздела, в котором есть скрытые элементы, с указанием количества скрытых элементов, например, «еще 5 ...»