これを行う正しい方法は_.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が好きです。