我有一个部分,我必须分页记录.
现在的问题是数字被添加,但我想删除上一个数字
现在的问题是数字被添加,但我想删除上一个数字
我目前有一些如下所示:
当我再次点击下一步5被添加,它变成了
上一页1 2 3 4 5下一页
我想做什么和应该有什么
请在下面找到我的可运行代码:
$('ul.pagination').on('click','a',function() { // listen for click on pagination link if($(this).hasClass('active')) return false; var active_elm = $('ul.pagination a.active'); if(this.id == 'next'){ var _next = active_elm.parent().next().children('a'); if($(_next).attr('id') == 'next') { // appending next button if reach end var num = parseInt($('a.active').text())+1; active_elm.removeClass('active'); $('<li><a class="active" href="#">'+num+'</a></li>').insertBefore($('#next').parent()); return; } _next.addClass('active'); } else if(this.id == 'prev') { var _prev = active_elm.parent().prev().children('a'); if($(_prev).attr('id') == 'prev') return false; _prev.addClass('active'); } else { $(this).addClass('active'); } active_elm.removeClass('active'); });
ul.pagination { display: inline-block; padding: 0; margin: 0; } ul.pagination li {display: inline;} ul.pagination li a { color: black; float: left; padding: 8px 16px; text-decoration: none; transition: background-color .3s; border: 1px solid #ddd; } ul.pagination li a.active { background-color: #4CAF50; color: white; border: 1px solid #4CAF50; } ul.pagination li a:hover:not(.active) {background-color: #ddd;} div.center {text-align: center;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="center"> <ul class="pagination"> <li><a id="prev">«</a></li> <li><a id="test1" href="#">1</a></li> <li><a id="test2" class="active" href="#">2</a></li> <li><a href="#">3</a></li> <li><a href="#" id="next">»</a></li> </ul> </div>
解决方法
这是我该怎么做
我将添加一个类到3< li>使用jQuery选择器轻松访问的内部数字的标签.
在if语句里面,你检查天气下一个按钮的id是下一个,删除第一个孩子像这样:
我将添加一个类到3< li>使用jQuery选择器轻松访问的内部数字的标签.
在if语句里面,你检查天气下一个按钮的id是下一个,删除第一个孩子像这样:
$('.three_links').first().remove();
并在最后一个孩子之后添加下一个数字,如下所示:
$('.three_links').last().after('<li class="three_links"><a class="active" href="#">'+num+'</a></li>');
并且如果id是prev,则删除最后一个子节点,并在第一个子节点之前添加上一个数字,但前提数字大于1:
if(num > 0){ active_elm.removeClass('active'); $('.three_links').last().remove(); $('.three_links').first().before('<li class="three_links"><a class="active" href="#">'+num+'</a></li>'); }
HTML:
<div class="center"> <ul class="pagination"> <li><a href="#" id="prev">«</a></li> <li class="three_links"><a id="test1" href="#">1</a></li> <li class="three_links"><a id="test2" class="active" href="#">2</a></li> <li class="three_links"><a id="test3" href="#">3</a></li> <li><a href="#" id="next">»</a></li> </ul> </div>
JS:
$('ul.pagination').on('click',function() { // listen for click on pagination link if($(this).hasClass('active')) return false; var active_elm = $('ul.pagination a.active'); if(this.id == 'next'){ var _next = active_elm.parent().next().children('a'); if($(_next).attr('id') == 'next') { // appending next button if reach end var num = parseInt($('a.active').text())+1; active_elm.removeClass('active'); $('.three_links').first().remove(); $('.three_links').last().after('<li class="three_links"><a class="active" href="#">'+num+'</a></li>'); return; } _next.addClass('active'); } else if(this.id == 'prev') { var _prev = active_elm.parent().prev().children('a'); if($(_prev).attr('id') == 'prev'){ var num = parseInt($('a.active').text())-1; if(num > 0){ active_elm.removeClass('active'); $('.three_links').last().remove(); $('.three_links').first().before('<li class="three_links"><a class="active" href="#">'+num+'</a></li>'); } return; } _prev.addClass('active'); } else { $(this).addClass('active'); } active_elm.removeClass('active'); });