2012-05-25 3 views
0

У меня есть список узлов:Есть ли что-то вроде nextAll() в Zepto.js?

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

Как я могу с зепто получить все узлы, 3-5, при использовании $(".current") как селектор (узел-2)?

ответ

0

Есть ли что-то вроде nextAll() в Zepto.js?

Не по 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 говорит только об использовании селектора, поэтому вам, возможно, придется немного поиграть с этим.

5

Это должно сработать. Почти как 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); 

 Смежные вопросы

  • Нет связанных вопросов^_^