我想通過隱藏長子列表中的一些元素而不添加額外的處理在服務器端做出長長的列表。問題是來自服務器的標記不受我控制,並且沒有設計成使我的工作變得簡單。這裏是代碼在棘手的情況下使用jQuery在列表中隱藏額外的項目(標記並不理想)
<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更多...」
非常感謝,但首先,列表可能會很長,循環遍歷每個項目可能會帶來甚至現代瀏覽器膝蓋...... 第二,正如我在示例代碼中列出的那樣,列表的開頭部分所有不屬於任何標題的項目都不應被隱藏。 – 2009-04-29 19:59:53