为什么jquery prev()工作正常但next()失败?

时间:2014-05-24 01:29:02

标签: javascript jquery html

我有以下HTML代码:

<div class="general_images">
  <a href="href_1" data-id="id_1">
    <img src="some_source">
  </a>
  <a href="href_2" data-id="id_2">
    <img src="some_source">
  </a>
  <a href="href_3" data-id="id_3">
    <img src="some_source">
  </a>
  <a href="href_4" data-id="id_4">
    <img src="some_source">
  </a>
  <a href="href_5" data-id="id_5">
    <img src="some_source">
  </a>
</div>

&安培;我使用以下js代码来获取next和previous字段的值:

$(".general_images a").click(function(e){
  data_prev = $(this).prev().attr('data-id');
  data_next = $(this).next().attr('data-id');
});

但由于某些原因,.prev().attr('data-id')正在重新使用正确的值,而.next().attr('data-id')将返回undefined。

任何见解或建议?

1 个答案:

答案 0 :(得分:2)

您的代码运行正常。你遇到的问题很简单:

next()和prev()获取相同&#34;级别内的元素&#34;在元素树上。当您点击具有data-id="id_1"属性的第一张图片时,您可以看到在该图片之前没有元素,这就是它为您提供"undefined"的原因。

如果你点击data-id="id_5"属性中的图像,下一个()会发生同样的事情,你可以看到在那个之后没有元素。