0

ここに、2つのラッパーをループしてから、それぞれの子をループし、番号をスローしてアイテムを番号順にリストする関数があります。forループを使用する代わりに、各jQuery関数を使用することにしました。これが私の質問です:

これを達成するにはどちらの方法が良いですか、そしてどちらかの方法で行くことによる長所/短所は何ですか?forループを使用する方が良いですか?

これ:

$(".articleContentWrapper").each( function () { 
    var i = 1;
    $(this).find(".howToStepNumber").each(function () {
        var b = i++;
        $(this).html(b);
    });
});

またはこれ:

$(".articleContentWrapper").each( function () { 
    var i = 1;
    $(this).find(".howToStepNumber").each(function () {
        $(this).html(i++);
    });
});
4

4 に答える 4

4

これはどう?

$(".articleContentWrapper").each( function () { 
    $(this).find(".howToStepNumber").each(function (i, e) {
        $(this).html(i + 1);
    });
});

この.each()メソッドはすでにインデックスホルダーを提供しているため、自分でインデックスホルダーを作成する必要はありません。

于 2012-05-30T20:32:15.277 に答える
1
var wrapper = $(".articleContentWrapper");
$(".howToStepNumber", wrapper).text( function (i) { 
    return ( i % (wrapper.length + 1) ) + 1;
});​

http://jsfiddle.net/kVUBu/1/

于 2012-05-30T20:34:50.110 に答える
1

以下のようにしてみてください、

$(".howToStepNumber", $(".articleContentWrapper")).html( function () {
    return $(this).index() + 1;
});

デモ

于 2012-05-30T20:39:33.900 に答える
0

私はおそらくそれを次のように書くでしょう:

$(".articleContentWrapper").each( function () { 
    $(".howToStepNumber", this).each(function (i) {
        $(this).html(i);  // or i+1 depending on what you want
    });
});

検索も実際には必要ではなく、ステートメントが長くなります。

于 2012-05-30T20:34:46.467 に答える