在动态创建的html上设置数据信息

我有一个来自服务器的JSON响应,它返回一个包含32个对象的数组(在本例中)。类似这样的:在动态创建的html上设置数据信息

[{object1},{ object2},{ object3}, etc]. 

每个对象都有一些信息用于填充html模板。对于这一点,我只是用一个简单的循环:

 for(var i = 0; i < api_empresaListar.length; i++) 

{

var item = api_empresaListar[i];

var htmls;

htmls = $('...lots of html code');

...

然后,它的发现/更改值只是一个简单的事情,并追加项目上的DOM。一切正常。但是,对于代码的一些接下来的部分,我想从我用来构建html元素的对象(我只是显示部分信息)中访问所有信息。所以,搜索了很多之后,我试图用数据,像这样:

var tp = htmls.find(".rl_grupo"); // the main div of each html element created in the loop 

$(tp).data('key', api_empresaListar[i]); // here, I expected to just insert the object data in each created item.

但是当我尝试在控制台中,我得到了物体的信息符合市场预期,但总是从阵列中的最后一个元素。为什么会发生?我相信这可能是愚蠢的,但我无法弄清楚。

因此,任何关于如何解决这个问题的想法,或其他方法,使这项工作表示赞赏。我通过设置一些“display:none”占位符html标签使其工作,并使用稍后需要的信息填充这些标签,但看起来像一个很差的解决方案...

回答:

您不应在循环中设置htmls变量。我认为你每一次都会压缩它的内容,这就是为什么你只有最后一个项目。你应该做这样的事情:(“ rl_grupo”)

var htmls = $('<div></div>'); 

for(var i = 0; i < api_empresaListar.length; i++) {

htmls.append($('...lots of html code'));

}

回答:

谈谈你的HTML代码创建内部的每个元素设置索引号,然后遍历$的元素,这样的吗?

$('.rl_grupo').each(function(){ 

var index = $(this).data('index');

var currentData = api_empresaListar[index];

$(this).data('key', currentData);

})

以上是 在动态创建的html上设置数据信息 的全部内容, 来源链接: utcz.com/qa/263772.html

回到顶部