2

我有这样的结构

        <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>

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

提前致谢!

4

4 回答 4

1

您的页面上似乎有重复的 ID ..

恐怕如果您尝试使用 ID 访问这些元素,它只会检索the first element with that ID..

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

$('div.dynamic').each(function(i){

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

检查小提琴

于 2012-10-30T06:26:26.487 回答
0

首先,您不应该在页面上有任何重复的 id,因此您应该将它们全部更改为类,以便它们应该是<di class = "dynamic thumbnail-div">,然后 jQuery 将它们全部放在页面上,然后遍历并删除缩略图的类名- div 并将其更改为 thumb1 thumb2 等将类似于

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

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

于 2012-10-30T06:32:37.220 回答
0

您不能使用具有重复的元素id

假设你使用thumbnail-divas classdivs那么你可能可以这样做

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

现场样品

于 2012-10-30T06:34:16.633 回答
0

答案在这里http://jsfiddle.net/A9SfJ/

$('.dynamic').addClass('thumb1').removeClass('dynamic');
于 2012-10-30T06:38:08.093 回答