循环访问父Div并更改Div Children类名

时间:2012-06-26 09:18:47

标签: javascript jquery

我正在编写一些代码来计算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();


});    

这样做的好方法是什么?

尼克

6 个答案:

答案 0 :(得分:1)

试试这个 Live Demo

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

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

});

添加或删除类

时,不应该给点

removeClass(“。Percentage”)应为removeClass(“Percentage”)

addClass(“。Percentage”+ i); 应为addClass(“Percentage”+ i)

答案 1 :(得分:1)

  1. 删除点
  2. Parent是一个类名而不是id
  3. 您不需要foreach来执行此操作

    $(“。Parent .Percentage”)。removeClass(“Percentage”)。addClass(“Percentage”+ i);

答案 2 :(得分:1)

试试这个

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

答案 3 :(得分: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);
}

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

所以

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

应该是:

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