编辑:根据您的评论更新代码,
在您的 html 中添加显示更多链接,如下所示,
<ul>
<li data-pet="cat"><a href="/black-cat">Black Cat<a></li>
<li data-pet="cat"><a href="/grey-cat">Grey Cat<a></li>
<li data-pet="cat"><a href="/red-cat">Red Cat<a></li>
<li class="shPets" data-pet="cat">Show More..</li>
<li data-pet="dog"><a href="/dog-cat">White Dog<a></li>
<li data-pet="dog"><a href="/dog-cat">Black Dog<a></li>
<li data-pet="dog"><a href="/dog-cat">Grey Dog<a></li>
<li class="shPets" data-pet="dog">Show More..</li>
<li data-pet="fish"><a href="/dog-cat">Grey fish<a></li>
</ul>
以上可以通过脚本来完成,但是如果你在你的 HTML 中有它会更好也更容易。
演示
var $li = $('ul li');
var $shPets = $('.shPets');
$shPets.each (function () {
var petType = $(this).data('pet');
$('ul li[data-pet='+petType+']')
.not('.shPets') //not shPets
.not(':first') //everything except first
.hide();
});
$('.shPets').click (function () {
var petType = $(this).data('pet');
if ($(this).text() == 'Show More..') {
$(this).text('Hide');
$('ul li[data-pet='+petType+']').show();
} else {
$(this).text('Show More..');
$('ul li[data-pet='+petType+']')
.not('.shPets') //not shPets
.not(':first') //everything except first
.hide();
}
});
您可以隐藏除第一个之外的所有内容,然后在单击显示/隐藏文本时切换它们。见下文,
演示
var $ul = $('ul');
var $li_not_first = $('ul li').not(':first').hide();
$ul.append('<li class="shPets">Show More..</li>');
$('.shPets').click (function () {
if ($(this).text() == 'Show More..') {
$(this).text('Hide');
$li_not_first.toggle();
} else {
$(this).text('Show More');
$li_not_first.toggle();
}
});