1

我正在使用 jQuery tempalting (http://api.jquery.com/jquery.tmpl/) 为我通过 ajax 接收的 json 数据生成一组 DIV 标签。

我想将 uniqe id 分配给动态生成的 div,以便对它们进行进一步的操作。

我试过类似的东西

var i = 0;
$( "#myTemplate" ).tmpl( data ).attr('id',++i).appendTo( "#container" ); 

但我的价值从未改变。它为所有 div 标签分配了 id=0。

现在我通过执行 .each() 并通过在所有匹配的 div 标签上增加“i”来设置 id,这些标签分配了一个公共类,但我想一次性完成。

任何想法?

4

4 回答 4

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。

于 2011-05-05T00:17:04.453 回答
1
var d = new Date();
var i = d.getTime();

我认为这可能是一个更好的选择,因为它的 inc 毫秒

或者

$.each('/selector goes here/',function (i,n){
    $( "#myTemplate" ).tmpl( data ).attr('id',i).appendTo( "#container" ); 
});
于 2011-02-28T10:50:43.837 回答
0

不会为集合中的每个项目调用 Attr。

而是 atts 使用提供的值在集合上循环,所以我不会像你期望的那样增加。

于 2011-02-28T10:50:25.397 回答
0

在您发布的示例中,您无法一口气完成。由于您的方法只会被调用一次,因此它的值只会增加一次。.each将是要走的路

于 2011-02-28T10:49:54.783 回答