user920041
user920041

Reputation:

Is there something like nextAll() in Zepto.js?

I have a list of nodes:

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

How can I with Zepto get all nodes 3-5, when using $(".current") as selector (node-2)?

Upvotes: 0

Views: 1334

Answers (2)

mjlescano
mjlescano

Reputation: 847

This should work. Almost like http://api.jquery.com/nextAll/ and 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);

Upvotes: 6

T.J. Crowder
T.J. Crowder

Reputation: 1074949

Is there something like nextAll() in Zepto.js?

Not according to the documentation, which has a notable gap after next and before not.

This would suggest you'll need a loop, e.g.:

var $current = $(".current"),
    $walk,
    $following = $(),
    $next;

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

That use of add would work with jQuery. Zepto's docs claim that "APIs provided match their jQuery counterparts" (their boldface), but the add docs only talk about using a selector, so you may have to play with that a bit.

Upvotes: 0

Related Questions