0

我想将唯一 id 分配到由 jquery Ajax 动态创建的 HTML DIV 中。

$.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:...
});

我需要为“single”类分配一个唯一的 id。在每个循环中,repeatID 在追加之外增加(例如,如果我取消注释警报并且服务器返回了 3 个数组,那么它将发出警报消息 3 次。)。但是在 append 里面它并没有增加。所有值都保持最初分配的值 1。因此,对于三个 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 的信息:http each:
//api.jquery.com/jQuery.each/

jQuery.each(集合,回调(indexInArray,valueOfElement))

于 2013-04-24T07:26:49.627 回答
1

您可以尝试将增量放在append()

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

不知道你的问题,但第二个对我来说绝对没问题。

如果你想在这里的演示小提琴中看到这个

于 2013-04-24T07:27:21.620 回答