我想实现以下目标:
如果给定的ul中有超过12个li,则将最后一个替换为“...”并隐藏在第12个之后出现的任何一个。
任何人都可以按我的方式提出一些指示吗?
答案 0 :(得分:0)
的 LIVE DEMO 强>
<ul data-truncate="12">
jQuery的:
$('[data-truncate]').each(function(){
var n = $(this).data('truncate') -1;
$('li', this).eq( n ).nextAll().hide().last().after('<li>...</li>');
});
答案 1 :(得分:0)
答案 2 :(得分:0)
试试这个:
$('#myList > li:eq(11)').nextAll().hide().end().after('<li>...</li>');
请注意,eq()
方法中提供的索引是从零开始的,并且是指jQuery对象中元素的位置,而不是DOM树中的位置。因此,eq(11)
表示此处的第12项。
答案 3 :(得分:0)
这是工作小提琴: http://jsfiddle.net/acturbo/w3yep/7/
示例html:
<ul id="mylist">
<li>1 </li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5 last one to see</li>
<li>6 will be truncated</li>
<li>7 will be truncated</li>
<li>8 will be truncated </li>
</ul>
jquery的:
$(document).ready(function () {
var maxToShow = 5;
$("#mylist li").each( function(i, e){
// truncate all li elements after the 5th
if ( i >= maxToShow){
// $(e).remove(); // remove it
$(e).hide(); // or hide it
}
});
});