Javascript jQuery-动态更改具有相同id标记类名的元素

Javascript jQuery-动态更改具有相同id标记类名的元素,javascript,jquery,html,css,dynamic,Javascript,Jquery,Html,Css,Dynamic,我有一个这样的结构 <div class="dynamic" id="thumbnail-div"> <p id="thumbnail-p"> <a href="#"> <img src="images/circle.GIF" alt="Example Number 1 For Display Case" name="Example Numbe

我有一个这样的结构

        <div class="dynamic" id="thumbnail-div">
            <p id="thumbnail-p">
                <a href="#">
                    <img src="images/circle.GIF" alt="Example Number 1 For Display Case" name="Example Number 1 For Display Case" class="dynamic" id="thumbnail-img" />
                </a>
            </p>
        </div>
$('div.dynamic').each(function(i){

     $(this).addClass('thumb' + (i+1));   // Add Class
     $(this).attr('id' , 'thumb' + (i+1));  // Set id for each div 
});

上面有多个html结构,所以可能有10、20、50等等。现在我要做的是让jQuery将类更改为id为“thumbDiv”的所有元素,改为thumb1、thumb2、thumb3等等。。因此,它们应该根据数量来计算。我找不到实现这一目标的方法,经过大量研究,我没有发现任何有用的东西。请帮忙


提前谢谢

您的页面上似乎重复了ID

我担心,如果您尝试使用ID访问这些元素,它将只检索具有该ID的第一个元素

假设您所有的div都有.dynamic类。。然后你可以做这样的事情

        <div class="dynamic" id="thumbnail-div">
            <p id="thumbnail-p">
                <a href="#">
                    <img src="images/circle.GIF" alt="Example Number 1 For Display Case" name="Example Number 1 For Display Case" class="dynamic" id="thumbnail-img" />
                </a>
            </p>
        </div>
$('div.dynamic').each(function(i){

     $(this).addClass('thumb' + (i+1));   // Add Class
     $(this).attr('id' , 'thumb' + (i+1));  // Set id for each div 
});

首先,你不应该在一个页面上有任何重复的id,因此你应该将它们全部更改到类中,这样它们应该是
,jQuery可以在页面上获取所有id,然后遍历并删除缩略图div的类名,并将其更改为thumb1 thumb2,诸如此类

$('.thumbnail-div').each(function(index) {
    $(this).removeClass('thumbnail-div');
    $(this).addClass('thumb' + index);
}

我很确定这应该行得通。如果您想删除类名,然后添加一个id,因为现在它们都是唯一的,您可以使用
$(this).attr('id','thumb'+索引)
而不是.addClass行

不能使用id为重复的
元素

假设您将
缩略图div
用作
用于
div
,那么您可能可以这样做

$(".thumbnail-div").each(function(index){
    $(this).addClass('thumb'+(index+1)); 
    // or set id $(this).attr('id' , 'thumb' + (index+1)); 
    alert($(this).attr('class'));
});​

答案在这里


嗯。一个页面上不能有多个
id
,请使用
classes
如果我想改为设置id怎么办?这是可能的吗?对于id做这个$(this).attr('id','thumb'+(i+1)),仅仅让我的类“thumbnail div thumb1”如此等等会更聪明吗?这样我就不用碰身份证了。你有什么建议吗?第一种想法是使用类而不是id。。你不需要身份证,因为它是放在第一位的