使用jquery ajax生成动态div id

时间:2013-04-24 07:18:17

标签: jquery ajax

我想将唯一的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个数组,那么它将提供警报消息三次。)。但内部附加它并没有增加。所有值仍然是最初指定的值,1。因此,对于三个DIV,我得到了id'my_test_1'。

如果有3个阵列,我希望得到'my_test_1','my_test_2','my_test_3'。我在哪里做错了?

有任何解决方案吗?

2 个答案:

答案 0 :(得分: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))

答案 1 :(得分: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++;
});

不知道你的问题,但第二个对我来说非常好。

If you want to see this in a demo fiddle here