我有一组具有相同类的div。我需要给每个人一个个人ID。然后将该ID应用于链接的href。
这是HTMl:
<div class="person-promo">
<a href="***#ID-OF-SIBLING-DIV***" class="action">> Read More</a>
<div class="hide">
<div id="***NUMBER-GOES-HERE***" class="person-details">
<!-- -->
</div>
</div>
</div><!-- Person Promo -->
如果有意义,每个锚都需要链接到它的兄弟Div。
我一直在各种网站和Jquery图书馆打猎几个小时,但没有运气。希望得到一些帮助。
顺便感谢大家的帮助。很高兴知道某些开发人员会在遇到困难时互相帮助。这是一个很棒的社区。 p>
答案 0 :(得分:2)
足够简单:
// Loop through the divs
$(".person-promo .person-details").each(function(i) {
// Store an id with format "uniqueId_{index}" in a variable.
var id = "uniqueId_" + i;
// Give the ID to the div
$(this).attr("id", id);
// Give it to the sibling link
$(this).siblings("a").attr("href", "#" + id);
});
那就是说,你应该生成所有这些服务器端。
答案 1 :(得分:1)
使用计数器似乎有点矫枉过正,因为无论如何都有可用的内置索引号......
$(".person-promo").each(function(Index) {
$(this).find("action").attr("href", "#person" +Index);
$(this).find(".person-details").attr("id", "person" + Index);
});
答案 2 :(得分:0)
我想你可以做到:
var i = 0;
var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$('.person-promo').each(function(){
var theID = str.charAt(i);
i++;
$(this).find('a.action').attr("href", "#"+theID);
$(this).find('.person-details').attr("id", theID);
});
不要忘记,你不应该使用整数作为ID
答案 3 :(得分:0)
var id = 0;
$('a').each(function() {
$(this).attr('href','#anchor' + id);
$(this).find('div').attr('id','anchor' + id);
id++;
});
答案 4 :(得分:-1)
您还可以将点击事件绑定到<a>
元素,以找到像这样的特定div
$('a.action').click(function(e) {
e.preventDefault();
var div_details = $(this).parent().find('.person-details');
// use div_details to show or hide etc..
})