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. 親は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 に答える