0

私はいくつかのdivと配列を持っています。関数を使用して配列に各 div (id) を挿入します。その関数を新しい div に適用すると、配列は最後のインデックス値を保持する代わりに、インデックス値 0 から始まります。

ここにフィドルがあります:http://jsfiddle.net/nQWfG/

assign('.firstround');

0、1、2 のインデックス値を割り当てます。

assign('.secondround');

0、1、2 のインデックス値を再度割り当てます。それらを 3、4、5 にします。

編集

これを 2 回行っている理由は、$('.secondround') div が後で ajax を介してロードされるためです。

4

4 に答える 4

1

最も簡単な方法:

assign('.firstround, .secondround');

編集

を使用して追加することもできますArray.push

myArray.push($('#' + index));

それ以外の

myArray[index] = $('#' + index);
于 2012-09-03T08:17:54.830 に答える
1

グローバル インデックスを定義するだけです: http://jsfiddle.net/nQWfG/2/

于 2012-09-03T08:20:33.543 に答える
0

それを追跡するために関数の外にvarが必要であり、各関数のインデックスを使用する代わりにそれをインクリメントする必要があると思います。それが「それぞれ」の仕組みです。

于 2012-09-03T08:17:28.370 に答える
0

この行が問題です:

myArray[index] = $('#' + index);

indexセレクターによって一致した要素のセット内の要素のインデックスです。

関数を介して最初のセレクターを実行するmyArrayと、0、1、および 2 のインデックスが付けられた 3 つの要素が含まれます。次回は、3 つの新しい要素を同じインデックスに再割り当てするだけです。セレクターは一致した要素のみを変更し、相対インデックスは変更しません。 .

あなたが何をしようとしているのかは完全にはわかりませんが、あなたがやろうとしていることを行うためmyArray.push()に with.index()を使用します:

デモ: http://jsfiddle.net/nQWfG/4/


より良いアプローチは、jQuery オブジェクトを使用することです。

var $elements = $('.firstround, .secondround').each(function(index) {
    $(this).text(index);
});

$elements.eq(1).css('background', 'red');
$elements.eq(4).css('background', 'green');​

デモ: http://jsfiddle.net/nQWfG/6/

于 2012-09-03T08:23:44.963 に答える