做到这一点,正确的方法是_.template
Example
如果你的结构是这样的:
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));
});
OR
放循环插入你的模板
<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,因为基准更快,并且库保持良好。
Ooops - 疲倦的大脑。固定。 – Thomas 2013-02-28 17:17:00
结果数组应该是什么样子? – 2013-02-28 17:18:27
使用'.map()'函数,通常你会让回调函数返回一个值,然后存储'.map()'调用的返回值,这将是你函数返回的新数组。 – 2013-02-28 17:18:58