nextAll() – 多个列表遍历

我有三个清单。 当我点击下一个时我想得到下一个li,这很好,但是当我到达第一个列表的末尾时,我希望下一个是第二个列表的第一个..我会尝试解释一下。

所以我有三个列表..接下来我想知道我有多少李,所以我写了..

 var how_many $('ul.list li').length; 

这很好,它带回了所有6里的..

接下来我想找到一个li,如果它当前有图像ID。

 var which = $('ul.list li[image_id^="' + image_id +'"]'); 

这一切都很好。

所以现在我要找到下一个li的图片ID是什么..

 var found_next = which.nextAll('ul.list li').attr('image_id'); 

这也有效..

然后我使用.load加载新图像,该.load具有更新当前image_id的回调…

“问题”是点击,next..next..next等等,我到第一个列表的结尾说jquery带回“undefined”而不是第二个列表的第一个li。 有没有人有任何建议?

任何帮助将非常感激。

.nextAll仅适用于兄弟姐妹。 如果要跳转到下一个

  • ,则必须选择所有元素,然后使用.index.eq()选择下一个

  •  var $li = $('ul.list li'); // Example, inside an event listener: var index = $(this).index($li); var nextElement = $li.eq( index + 1 ); 

    不确定你是否已经弄清楚了。 如果没有,你可以尝试:

     var $li = $('ul.list li'), i = 0, $currentLi; $('button').click(function(){ if(i < $li.length) { $currentLi = $li.eq(i); //eq(i) returns a jQuery object where i is the zero-based index i++ }else { alert('End of LIs'); } }); 

    这是一个有效的演示