Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery每个导航顺序,未定义错误_Jquery_Html_Each - Fatal编程技术网

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

我想用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 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