我有以下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。
任何见解或建议?
答案 0 :(得分:2)
您的代码运行正常。你遇到的问题很简单:
next()和prev()获取相同&#34;级别内的元素&#34;在元素树上。当您点击具有data-id="id_1"
属性的第一张图片时,您可以看到在该图片之前没有元素,这就是它为您提供"undefined"
的原因。
如果你点击data-id="id_5"
属性中的图像,下一个()会发生同样的事情,你可以看到在那个之后没有元素。