我有几个具有唯一类'slide_image'和唯一ID的div。 在每个div中我有2个链接,“#next”和“#prev”。 我想要做的是为每个div获取next和prev div的id,并将id ty链接归属。
例如.slide_image id = slide_3
<div id="slide_2" class="slide_image">
1
<a href="#slide_3" id="next"></a><a href="#slide_1" id="prev"></a>
</div>
<div id="slide_3" class="slide_image">
1
<a href="#slide_4" id="next"></a><a href="#slide_2" id="prev"></a>
</div>
这是我尝试过的但它不起作用,我认为我的each()函数有问题:
$('.slide_image').each(function(e){
var next_link = $(this).next().attr('id');
$( "a#next" ).next().attr("href", next_link)
});
$('.slide_image').each(function(e){
var prev_link = $(this).prev().attr('id');
$( "a#prev" ).prev().attr("href", prev_link)
});
这是一个包含我所有代码的Jsfiddle:http://jsfiddle.net/4yzg25o2/1/
任何人都可以帮我这个吗?
非常感谢,
答案 0 :(得分:1)
我首先要做的是人们的建议。将#next
和#prev
更改为班级.next
和.prev
。
然后循环每个.slide_image
并找到它的索引(索引将是它内部的当前.slide_image
元素。所以第一个.slide_image
将是1 ,第二个2等)。然后从这里获取下一个和前一个索引(因此1将是-1和2)。然后我们可以使用jQuery's eq()
通过它的索引查找元素。一旦我们拥有了该元素,我们就可以使用attr()来获取它的身份。
然后只需将这些ID添加到.next
和.prev
链接。
查看http://jsfiddle.net/4yzg25o2/6/,其中有一个有效的例子。
我没有检查错误处理,但eq()
会返回undefined
,如果它所查找的元素不存在(例如它所在的元素&#39} ; s索引是-1)。所以你可以使用它来显示其他幻灯片。例如,如果我们在第一张幻灯片上,.prev
链接到最后一张幻灯片,还是应该隐藏链接以防止他们点击回来?
我的代码中需要注意的一件事是在this
中使用$(".next", this)
。基本上第二个属性是上下文,看看这个SO post。