0

jquery Ajaxによって動的に作成されたHTML DIVに一意のIDを割り当てたいです。

$.ajax({
        type: 'xxx',
        data: 'xxx',
        url: 'xxx',
        success: function(data) {

                var repeatID =1;

                $.each(data.data, function(i, v){

                    repeatID++;

                    //alert(repeatID);

                    $("#divId").append('<div class="single" id="my_test_' + repeatID + '">'
                                                    +'<div class="any_name"> '+ v.Name +' </div></div>');
                });
        error:...
});

クラス「シングル」に一意のIDを割り当てる必要があります。each ループ内では、repeatID が追加の外側で増加しています (たとえば、アラートのコメントを外し、サーバーから 3 つの配列が返された場合、アラート メッセージが 3 回表示されます)。しかし、追加内では増加していません。すべての値は、最初に割り当てられた値 1 のままです。したがって、3 つの DIV について、id 'my_test_1' を取得しました。

3 つの配列がある場合、「my_test_1」、「my_test_2」、「my_test_3」を取得することを期待しています。私はどこで間違っていますか?

解決策を教えてください。

4

2 に答える 2

2

index パラメーター (この場合はi) をカウンターとして使用できます。repeatID関数のコールバック パラメータには必要なeach機能が付属しているため、必要ありません。

$.each(data.data, function(i, v){
    $("#divId").append('<div class="single" id="my_test_' + (i+1) + '">'
                          +'<div class="any_name"> '+ v.Name +' </div></div>');
}

(i+1)あなたがそれを1ベースにしたいように見えるので、私は使用しました。

フィドル:
http://jsfiddle.net/3wFE4/

jQuery の詳細each:
http://api.jquery.com/jQuery.each/

jQuery.each(コレクション、コールバック(indexInArray、valueOfElement))

于 2013-04-24T07:26:49.627 に答える