0

我正在编写一些代码来计算 Div 子项的数量,然后根据循环迭代,我想要一个新的 div 类名,例如“.ClassName”+ i。我正在尝试使用 Jquery 执行此操作,但由于某种原因它无法正常工作。

<div class="Parent">

    <div class="Percentage">
    <pe:Percentage runat="server" />
    </div>

    <div class="Percentage">
    <pe:Percentage runat="server" />
    </div>

    <div class="Percentage">
    <pe:Percentage runat="server" />
    </div>

</div>

$(document).ready(function() {

    $(".Percentage").each(function(i, val) {
        alert(val.innerHTML);
        $("#Parent .Percentage").removeClass(".Percentage").addClass(".Percentage" + i); 
        alert(val.innerHTML);

    });

    //        var count = $('.Percentage').length;
    //        alert(count);
    //        percentageCount();


});    

这样做的好方法是什么?

缺口

4

6 回答 6

1

试试这个,现场演示

$(".Percentage").each(function(i, val) {

    $(this).removeClass("Percentage").addClass("Percentage" + i);

});

添加或删除类时不应该给出点

removeClass(".Percentage")应该是 removeClass("Percentage")

addClass(".Percentage" + i); 应该是 addClass("Percentage" + i)

于 2012-06-26T09:21:04.477 回答
1
  1. 删除点
  2. Parent 是类名而不是 id
  3. 您不需要 foreach 来执行此操作

    $(".Parent .Percentage").removeClass("Percentage").addClass("Percentage" + i);

于 2012-06-26T09:23:26.480 回答
1

尝试这个

            $(".Parent .Percentage").each(function(i,val)
            {
                $(this).removeClass('Percentage').addClass("Percentage"+i);
            });
于 2012-06-26T09:26:18.663 回答
0

我认为应该是

$(".Percentage").each(function(i, val) {
        $(this).removeClass("Percentage").addClass("Percentage" + i); 
    });

(添加或删除类时没有“.”,只有类名)

更好的性能,使用经典for而不是each

var $percentageElements = $(".Percentage");
for(var i = O; i< $percentageElements.length; i++){
 var $percentage = $percentageElements.eq(i);
 $percentage.removeClass("Percentage").addClass("Percentage" + i);
}
于 2012-06-26T09:20:48.383 回答
0

我认为您应该首先添加新类,然后只删除旧类。演示在http://jsfiddle.net/KV7BZ/

于 2012-06-26T09:23:17.603 回答
0

您可以使用$(this)代替$("#Parent .Percentage")和删除.(点),因为您已经在处理类。

所以

$("#Parent .Percentage").removeClass(".Percentage").addClass(".Percentage" + i);

应该:

$(this).removeClass("Percentage").addClass("Percentage" + i);
于 2012-06-26T09:27:28.747 回答