我有以下HTML
<div class = "pagination">
<ul class = "pagination-wrap>
<li><a href = "#">1</a></li>
<li><a href = "#">2</a></li>
<li><a href = "#">3</a></li>
<li><a href = "#">4</a></li>
</ul>
</div>
如果我们有更多项目,列表会增加。我的问题是如何动态删除列表<li>
。例如:如果我的totalpages = 1
,我想删除除1以外的所有内容。
totalpages = getpages(); //Returns a number from my function
if(totalpages == 1) {
$("a:contains('2')").hide();
$("a:contains('3')").hide();
$("a:contains('4')").hide();
$("a:contains('5')").hide();
}
现在我有很多像这样的条件。是否可以在一个函数中执行此操作,因为我不想对每个场景进行硬编码。类似:如果总页数= 1.排除1并删除所有内容?
编辑:当totalPages = 3时,我想隐藏4及以上但不是1,2和3。
答案 0 :(得分:1)
你可以隐藏所有内容,然后只显示你想要的内容
function showOnly(someText) {
$(".pagination-wrap a").hide();
$(".pagination-wrap a:contains('"+someText+"')").show();
}
答案 1 :(得分:1)
您当前的代码无法处理四页以上的页面。看起来您只需在需要时添加页码即可获益:
var totalPages = getpages();
for (var page = 1; page <= totalPages; page++)
{
$('ul.pagination-wrap').append('<li><a href="#">' + page + '</a></li>');
}
答案 2 :(得分:1)
将以下内容更改为隐藏页面编号以外的其他功能<{1}}功能
getpages()
愿这对你有所帮助。
答案 3 :(得分:0)
使用 jQuery :gt(index)
隐藏<li>
大于您的网页数量!
示例:强>
http://jsfiddle.net/bevL7/
totalpages = getpages();
$(".pagination-wrap li:gt('" + (totalpages-1) + "')").hide();