Jquery每个导航顺序,未定义错误
我想用jQuery隔离我的导航,但每个都返回未定义的循环中的某些元素, 看起来是这样的:Jquery每个导航顺序,未定义错误,jquery,html,each,Jquery,Html,Each,我想用jQuery隔离我的导航,但每个都返回未定义的循环中的某些元素, 看起来是这样的: <ul class="list"> <li class="list-item" data-post-id="100"> <a href="#" data-next="105">Next</a> <a href="#" data-prev="100">Prev</a> </li> <li cl
<ul class="list">
<li class="list-item" data-post-id="100">
<a href="#" data-next="105">Next</a>
<a href="#" data-prev="100">Prev</a>
</li>
<li class="list-item" data-post-id="101">
<a href="#" data-next="101">Next</a>
<a href="#" data-prev="104">Prev</a>
</li>
</ul>
<ul class="list">
<li class="list-item" data-post-id="102">
<a href="#" data-next="102">Next</a>
<a href="#" data-prev="106">Prev</a>
</li>
<li class="list-item" data-post-id="103">
<a href="#" data-next="103">Next</a>
<a href="#" data-prev="100">Prev</a>
</li>
</ul>
<ul class="list">
<li class="list-item" data-post-id="104">
<a href="#" data-next="105">Next</a>
<a href="#" data-prev="104">Prev</a>
</li>
<li class="list-item" data-post-id="105">
<a href="#" data-next="101">Next</a>
<a href="#" data-prev="106">Prev</a>
</li>
</ul>
这是因为
next/prev
方法将只查找上一个/下一个同级元素。因此,在每个ul
中,第一个li
没有上一个和最后一个同级元素,因此它们将打印未定义的
相反,您可以使用基于索引的查找,如
jQuery(函数($){
var pList=$('.list item');
pList.each(函数(i,e){
var指数=物价指数(本);
var next=pList.eq(索引+1.attr('data-post-id');
var-prev=index==0?未定义:pList.eq(index-1.attr('data-post-id');
snippet.log(prev+':'+$(this.attr('data-post-id')+':'+next)
});
});代码>
-
-
-
-
-
-
请在控制台代码之前包含来自Fiddle的js,因为有一个链接。因为next/prev
将查找同级元素根据您的要求,输出应该是什么?
<ul class="list">
<li class="list-item" data-post-id="100">
<a href="#" data-next="101">Next</a>
<a href="#" data-prev="105">Prev</a>
</li>
<li class="list-item" data-post-id="101">
<a href="#" data-next="102">Next</a>
<a href="#" data-prev="100">Prev</a>
</li>
</ul>
<ul class="list">
<li class="list-item" data-post-id="102">
<a href="#" data-next="103">Next</a>
<a href="#" data-prev="101">Prev</a>
</li>
<li class="list-item" data-post-id="103">
<a href="#" data-next="104">Next</a>
<a href="#" data-prev="102">Prev</a>
</li>
</ul>
<ul class="list">
<li class="list-item" data-post-id="104">
<a href="#" data-next="105">Next</a>
<a href="#" data-prev="103">Prev</a>
</li>
<li class="list-item" data-post-id="105">
<a href="#" data-next="100">Next</a>
<a href="#" data-prev="104">Prev</a>
</li>
</ul>
101next
undefinedprev
undefinednext
100prev
103next
undefinedprev
undefinednext
102prev
105next
undefinedprev
undefinednext
104prev