迭代具有相同ID的div并添加数字

时间:2012-07-14 01:48:08

标签: jquery loops

我正在尝试使用id“slide”迭代每个div并在末尾添加一个数字(例如slide1,slide2等)

我已经能够为每个div添加一系列类,但是我只能获得相同的代码来重命名第一张幻灯片,而不是其余的。

$(document).ready(function() {
 $("#slide").each(function(i) {
    $(this).attr('id', "slide" + (i + 1));
 });
});​

和jsfiddle here http://jsfiddle.net/YsvCe/1/

提前致谢

3 个答案:

答案 0 :(得分:14)

您应该为多个元素使用类而不是ID。

<div class="slide">hello</div>

...

$(document).ready(function() {
    $(".slide").each(function(i) {
        $(this).attr('id', "slide" + (i + 1));
    });
});​

示例:http://jsfiddle.net/QaB76/

答案 1 :(得分:11)

ID属性必须是唯一的,id选择器应该是唯一的,只返回第一个匹配的元素:

$(document).ready(function() { 
    $("div[id^='slid']").attr('id', function(i) {
       return "slide" + ++i;
    });
});

DEMO

答案 2 :(得分:3)

元素必须具有唯一ID。 each函数不会迭代其他div。因此,找到一种方法来选择它们而不违反该规则。以下作品:

$("div").each(function(i)