我正在使用jQuery tempalting(http://api.jquery.com/jquery.tmpl/)为json数据生成一组DIV标记,这些数据是我用ajax收到的。
我想将uniqe id分配给动态生成的div,以便对它们采取进一步的操作。
我试过像
这样的东西var i = 0;
$( "#myTemplate" ).tmpl( data ).attr('id',++i).appendTo( "#container" );
但我的价值从未改变过。它为所有div标签分配了id = 0。
现在我通过做一个.each()并通过在所有匹配的div标签上递增'i'来设置id,这些标签有一个共同的类,但我想一次性完成。
有什么想法吗?
答案 0 :(得分:2)
我会走另一条路 - 在模板中生成一个id。比如说,你的模板是:
<script id="divTemplate" type="text/html">
<div id='${getNextId()'}></div>
<div id='${getNextId()'}></div>
</script>
<script type="text/javascript">
var id = 1;
function getNextId()
{
return ++id;
}
</script>
将为每个div调用该方法,就地生成新的id。
答案 1 :(得分:1)
var d = new Date();
var i = d.getTime();
我认为这可能是一个更好的选择,因为它的毫秒毫秒
OR
$.each('/selector goes here/',function (i,n){
$( "#myTemplate" ).tmpl( data ).attr('id',i).appendTo( "#container" );
});
答案 2 :(得分:0)
在您发布的示例中,您无法一次性完成。由于您的方法只会被调用一次,因此它的值只会增加一次。 .each
将是最佳选择
答案 3 :(得分:0)
不会为集合中的每个项目调用Attr。
而是atts使用提供的值循环遍历集合,因此我不会随着您的想法而增加。