在动态创建的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