【问题标题】:Pagination : Remove element using jquery?分页:使用 jquery 删除元素?
【发布时间】:2023-03-29 15:24:01
【问题描述】:

我有一个部分,我必须对记录进行分页。 现在的问题是添加了号码,但我想删除上一个号码

我目前有以下内容:

上一页 1 2 3 下一页

当我点击下一个 4 时,它会变成 上一页 1 2 3 4 下一页

当我再次单击下一步时,添加了 5 个并变为 上一页 1 2 3 4 5 下一页

我想要做什么以及应该做什么

上一页 1 2 3 下一页

当我点击下一个 4 被添加时,它应该变成 上一页 2 3 4 下一页

当我再次单击下一步时,添加了 5 个并变为 上一页 3 4 5 下一页

当我点击 Previous Now 它应该是 上一页 2 3 4 下一页

请在下面找到我的可运行代码:

$('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>

【问题讨论】:

标签: javascript jquery html css pagination


【解决方案1】:

在添加下一个数字后使用它

$('#prev').parent().next().remove();

Codepen http://codepen.io/mastersmind/pen/ZBJZjo

【讨论】:

  • 我应该如何去上一个?
【解决方案2】:

我会这样做。
我会在 3 个 &lt;li&gt; 标记中添加一个类,其中包含数字,以便使用 jQuery 选择器轻松访问。 在您检查天气的 if 语句中,下一个按钮的 ID 为 next,像这样删除第一个孩子:

$('.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>');
}

Here is a working jsfiddle.

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', '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');
            $('.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');
});

【讨论】:

    【解决方案3】:

    使用以下脚本:

    $('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());
            var hidenum = parseInt($('a.active').text())-2;
            if(hidenum > 0){
                $('#next').parent().prev().prev().prev().prev().hide();
            }
            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');
    
    });
    

    【讨论】:

      猜你喜欢
      • 2015-07-08
      • 1970-01-01
      • 2013-07-18
      • 2010-11-01
      • 2011-09-23
      • 2023-03-24
      • 2013-10-02
      • 2011-01-04
      • 1970-01-01
      相关资源
      最近更新 更多