【问题标题】:Is there something like nextAll() in Zepto.js?Zepto.js 中有类似 nextAll() 的东西吗?
【发布时间】:2012-05-31 23:31:14
【问题描述】:

我有一个节点列表:

<div id="node-1"></div>
<div id="node-2" class="current"></div>
<div id="node-3"></div>
<div id="node-4"></div>
<div id="node-5"></div>

当使用 $(".current") 作为选择器 (node-2) 时,如何使用 Zepto 获取所有节点 3-5?

【问题讨论】:

    标签: javascript zepto


    【解决方案1】:

    这应该可行。几乎像 http://api.jquery.com/nextAll/ 和 http://api.jquery.com/prevAll/

    ;(function($){
    var e = {
        nextAll: function(s) {
            var $els = $(), $el = this.next()
            while( $el.length ) {
                if(typeof s === 'undefined' || $el.is(s)) $els = $els.add($el)
                $el = $el.next()
            }
            return $els
        },
        prevAll: function(s) {
            var $els = $(), $el = this.prev()
            while( $el.length ) {
                if(typeof s === 'undefined' || $el.is(s)) $els = $els.add($el)
                $el = $el.prev()
            }
            return $els
        }
    }
    
    $.extend( $.fn, e )
    })(Zepto);
    

    【讨论】:

      【解决方案2】:

      Zepto.js 中有类似 nextAll() 的东西吗?

      不是根据the documentation,在next之后和not之前有明显的差距。

      这表明你需要一个循环,例如:

      var $current = $(".current"),
          $walk,
          $following = $(),
          $next;
      
      for ($walk = $current.next(); $walk[0]; $walk = $walk.next()) {
          $following.add($walk);
      }
      

      add 的使用适用于 jQuery。 Zepto 的文档声称 "提供的 API 与它们的 jQuery 对应物相匹配"(他们的粗体字),但 add docs 只谈论使用选择器,所以你可能不得不玩有点。

      【讨论】:

        猜你喜欢
        • 2020-04-10
        • 1970-01-01
        • 2021-08-04
        • 2012-11-27
        • 2017-11-21
        • 2012-08-03
        • 2015-08-25
        • 1970-01-01
        • 2015-11-14
        相关资源
        最近更新 更多