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

时间:2012-05-25 11:17:12

标签: javascript zepto

我有一个节点列表:

<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?

2 个答案:

答案 0 :(得分:6)

这应该有效。几乎像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);

答案 1 :(得分:0)

  

在Zepto.js中是否有类似nextAll()的内容?

不符合the documentationnext之后和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只讨论使用选择器,所以你可能不得不玩那个。