正确的方法是 _.template
例子
如果你的结构是这样的:
var list = {"partners":[
{"username":"fangonk","profileImg":"fangonk.jpg"},
{"username":"jane","profileImg":"jane.jpg"},
{"username":"tom_jones","profileImg":"tom.jpg"}
]};
您可以创建重复项模板(注type="text/html"
)
<script type="text/html" id="userItemTemplate">
<h1><%= username %></h1><img src='<%= profileImg %>' />
</script>
并通过循环将每个项目放入模板中
var uIT = $("#userItemTemplate").html();
_.each(list.partners,function(user){
$("#target").append(_.template(uIT,user));
});
或者
将循环放入您的模板
<script type="text/html" id="userTemplate">
<% _.each(partners,function(user,key,list){ %>
<h1><%= user.username %></h1><img src='<%= user.profileImg %>' />
<% }); %>
</script>
然后将整个数组推入
var uT = $("#userTemplate").html();
$("#target2").html(_.template(uT,list));
请注意,我使用的是 lodash 而不是下划线。它在很大程度上是兼容的,但我更喜欢 lodash,因为基准测试更快并且库维护得很好。