【发布时间】:2016-06-23 10:08:15
【问题描述】:
假设我有一个无序列表,如下所示:
HTML 代码:
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
<li>Five</li>
<li>One 1</li>
<li>Two 2</li>
<li>Three 3</li>
<li>Four 4</li>
<li>Five 5</li>
<li>One 11</li>
<li>Two 22</li>
<li>Three 33</li>
<li>Four 44</li>
<li>Five 55</li>
</ul>
我将如何使用 jquery 或 javascript,只显示前五个列表项并在那里有一个“显示更多”文本,所以当点击时,接下来的五个列表项会出现?
脚本:
$('ul').each(function(){
var max = 4
if ($(this).find('li').length > max) {
$(this).find('li:gt('+max+')').hide().end().append('<li class="sub_accordian"><span class="show_more">(see more)</span></li>');
$('.sub_accordian').click( function(){
$(this).siblings(':gt('+max+')').toggle();
if ( $('.show_more').length ) {
$(this).html('<span class="show_less">(see less)</span>');
} else {
$(this).html('<span class="show_more">(see more)</span>');
};
});
};
});
当我点击“显示更多”时,接下来的五个结果应该是可见的。加载每个结果后,“显示更多”文本将更改为“更少更多”。
当我点击“更少更多”按钮时,第一个结果应该是可见的,其他列表项应该被隐藏,“更少更多”文本更改为“显示更多”
【问题讨论】:
-
这段代码有什么问题?
-
我猜只需要显示隐藏五个
-
使用 sub ul 怎么样?
-
@guradio: 只需要显示前五个列表点击显示更多接下来的五个列表项应该可见并且显示更多文本应该更改为更少
标签: javascript jquery toggle