我有一个部分,我必须分页记录.
现在的问题是数字被添加,但我想删除上一个数字

我目前有一些如下所示:

上一页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下一页

当我点击上一个现在应该是
上一页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>

解决方法

这是我该怎么做
我将添加一个类到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>');
}

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

javascript – 分页:使用jquery删除元素?的更多相关文章

  1. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  2. 在IOS9中的Cordova应用程序使用JQuery / Javascript的window.history问题

    在两个测试用例中唯一改变的是Cordova.js.解决方法我看到这是几个星期前,但我会发布这个,以防其他人遇到它.听起来它可能与iOS9中的哈希更改生成的导航事件有关.如果是这样,可以将其添加到index.html以禁用哈希侦听:

  3. iOS 5上的jQuery事件

    解决方法在Apple开发论坛上由一个人回答:我需要在将元素添加到DOM之后才绑定(),如下所示:

  4. Swift-ReactiveCocoa3.0二SignalProducer 2

    lift运算符|>内部也是调用了lift方法,作用是把原producer的结果transform完返回新的类型/值,再封装成新的producer返回。只有在第一个producer销毁后才会响应第二个producer。之后,每当其中一个再sendNext,都会在next回调zipwith压缩两个信号,每当两个都sendNext一次才回在next回调一次。例子:sampleOn采样,当sampleOn的信号sendNext一次,就取一次producer1的最新一次sendNext的值进行next回调takeu

  5. 如何在Swift中调用C函数

    “,选择Yes,创建SwiftCallC-Bridging-Header.h文件给工程建立一个C语言文件。跟上述步骤3类似,只不过这里选择的是C文件,这里的文件取名为CFile.c,同时自动生成CFile.h文件开始编写代码。在SwiftCallC-Bridging-Header.h文件中声明C函数,这里是voidcallCDemo()在CFile.c中定义这个函数在main.swift中调用这个C函数编译运行

  6. Swift--UINavigationController

    代码目录AppDelegate.swiftViewController.swiftNext.swift效果图

  7. Swift如何取得View所属的ViewController

    从VC取得View很容易,但有些情况下我们需要从View反向获取VC.不过在一些特殊的场合,Cocoa库帮我们想的很周到,比如在自定义view过渡动画的时候:系统在回调我们的animateTransition方法时,会传入一个context参数,从它我们可以轻松取得参与动画的toView,fromView以及它们对应的VC:但不是所有情况系统都会帮你考虑的这么周到,所以有时候还得需要自己从View

  8. RxSwift使用教程大全 韩俊强的博客

    记录大多数ReactiveX的概念和操作符。我们还需要使用KVO来检测变量的值改变。Rx就是为解决这些问题而生的。Observable理解RxSwift的关键是理解Observable的概念。使用variable的好处是variable将不会显式的发送Error或者Completed。

  9. swift – 全局函数序列(state:next :)和类型推断

    3,让seq2=4…

  10. 数组 – 封闭平面嵌套对象?

    我开始学习闭包,并希望在我正在开发的项目中实现它们,我想要一些帮助.我有一个类定义如下:我想使用闭包或更高级的函数来展平[MyObject]并将所有MyObject和subOjects连接成一个数组.我尝试使用[MyObject].flatMap(),但此操作不返回嵌套的子对象.展平递归类结构的一种方法是使用递归函数.这是我们想要展平的课程:以下是演示如何完成此操作的函数:这种方法的核心是recursiveFlat本地函数.它将嵌套对象的内容附加到结果中,然后有条件地为每个元素调用自身以添加其内容.

随机推荐

  1. jquery-plugins – 是否可以使用猫头鹰旋转木马实现循环/无限轮播?

    我正在使用猫头鹰旋转木马,它的工作完美,除了它不支持循环/无限滚动.我没有搜索google和stackoverflow的想法,没有运气.有没有人在猫头鹰旋转木马上实现圆形/无限滚动?

  2. jQuery动态输入字段焦点

    我想使用以下jQuery向我的页面动态添加一个输入字段:在这样做之后,我希望输入字段具有闪烁的文本光标的焦点,所以我想在创建后立即输入.有人可以告诉我我该怎么办?

  3. jquery – 为什么$(window).height()这样错了?

    我试图获取当前浏览器的视口高度,使用但我得到的价值观太低了.当视口高度高达850px时,我从height()获取大约350或400像素的值.这是怎么回事?

  4. jquery – 如果在此div之外和其他draggables内部(使用无效和有效的还原选项),则可拖动恢复

    例如这样但是由于明显的原因,这不行.我可以说这个吗?

  5. 创建一个jQueryUI 1.8按钮菜单

    现在jQueryUI1.8已经出来了,我正在浏览更新,并且遇到了新的Buttonwidget,特别是SplitButtonwithadropdown的演示之一.这个演示似乎表明Buttonwidget可以在这里创建一个下拉菜单.作为讨论的问题,我想知道使用这个新的Button小部件来创建一个下拉菜单有什么方法.干杯.解决方法您必须在按钮下方列出一个列表,方式类似于此处为自动完成提供的演示:http

  6. 灰色divs使用JQuery

    我试图使用这个代码:为了淡出一大堆名为MySelectorDiv的div,唯一的是,它只会淡出第一个而不是所有的div,为什么呢?

  7. 使用jQuery动态插入到列表中

    我有两个订单列表在彼此旁边.当我从一个列表中选出一个节点时,我想按照字母顺序插入到另一个列表中.抓住的是我想要把一个元素放在另一个列表中,而不刷新整个列表.奇怪的是,当我插入到右边的列表中,它工作正常,但是当我插入到左边的列表中时,顺序永远不会出来.我也尝试将所有内容读入数组,并将其排序在一起,以防止children()方法没有按照显示顺序返回任何东西,但是我仍然得到相同的结果.这是我的jQuer

  8. 没有回应MediaWiki API使用jQuery

    我试图从维基百科获取一些内容作为JSON:但我没有回应.如果我粘贴到浏览器的地址栏,就像我得到预期的内容.怎么了?解决方法您需要通过添加&callback=?来触发具有$.getJSON()的JSONP行为?在querystring上,像这样:Youcantestithere.没有使用JSONP,你正在击中same-originpolicy,阻止XmlHttpRequest获取任何数据.

  9. jQuery Ajax请求每30秒

    我有这段代码,但是有些人在我的网站上的值可能会改变.我需要每30秒钟更新一次#financediv.这可以做吗解决方法您可以将代码放在单独的函数中,如下所示:然后每30秒建立一个定时器调用该函数:祝你好运!总结以上是DEVMAX为你收集整理的jQueryAjax请求每30秒全部内容。如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

  10. jquery – keypress事件在IE和Chrome中不工作,但在FF工作

    任何想法为什么会这样发生?我通常认为Chrome会更加宽容代码?这是我的按键键.我错过了什么吗?右图();和leftimage();是应该工作的功能,因为我在其他地方使用这些功能谢谢您的帮助!

返回
顶部