我想将唯一的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'。我在哪里做错了?
有任何解决方案吗?
答案 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++;
});
不知道你的问题,但第二个对我来说非常好。