0

我有由许多 li 组成的无序列表。我想将 li 计数停止在 5 并显示更多链接,这将扩大剩余的 li。

<ul>
   <li>1</li>
   <li>2</li>
   <li>3</li>
   <li>4</li>
   <li>5</li>
   <li>6</li>
   <li>7</li>
</ul>

这个的输出必须像

1
2
3
4
5
..more

因此,当我单击更多时,它应该向我显示剩余的列表项。

任何建议。

谢谢你。

4

5 回答 5

2

HTML

<ul id="datalist">
    <li>dataset1</li>
    <li>dataset2</li>
    <li>dataset3</li>
    <li>dataset4</li>
    <li>dataset5</li>
    <li>dataset6</li>
    <li>dataset7</li>
    <li>dataset8</li>
    <li>dataset9</li>
    <li>dataset10</li>
<ul>

CSS

ul li:nth-child(n+6) {
    display:none;
}

ul li {
    border: 1px solid #aaa;   
}

span {
    cursor: pointer;
    color: #f00;                
}

JS

$(function() {
    $('#datalist').append('<span>readmore</span>');
    $('span').click(function() {
        $('#datalist li:hidden').slice(0, 5).show();
        if ($('#datalist li').length == $('#datalist li:visible').length) {
            $('span ').hide();
        }
    });
});

演示

于 2012-09-12T12:56:05.197 回答
2
if ($('ul li').length > 5 ) {
    $('ul')
    .after('<a class="more">..more</a>')       
    .find('li:gt(4)').hide();    
}

$('.more').click(function() {
    $(this)
        .hide()
        .prev()
        .find('li:hidden')
        .show();
});

http://jsfiddle.net/FPtfg/

​</p>

于 2012-09-12T13:07:49.223 回答
1

试试喜欢

$("li").each(function(){
    if($(this).text()>5)
        $(this).hide();

}); 并在您的页面中添加“更多”,例如

<a href="">More</a>
$('a').click(function(e){
      e.preventDefault();
      $('li').show()
})
于 2012-09-12T12:51:23.547 回答
1
$(document).ready(function() {
  if ($('li').length>5){
    $('li:gt(4)').hide();

    $('#showMore').show().one('click',function(){
        $(this).hide();
        $('li:gt(4)').show();
    });
  }
});

​http://jsfiddle.net/EWSJq/

于 2012-09-12T12:59:26.697 回答
1

您可以尝试代码示例

<ul id="all-container">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>    
</ul>
<a href="#" id="btn-show-more">show more</a>

<ul id="more-items-container" style="display:none">   
<li class="more-item">6</li>
<li class="more-item">7</li>
</ul>



<script type="text/javascript">

$(document).ready(function(){

$('#btn-show-more').click(function(){

var moreItems=$('#more-items-container .more-item');
$('#all-container').append(moreItems).slideDown();

});

});
于 2012-09-12T13:01:36.533 回答