【发布时间】:2011-10-27 20:57:50
【问题描述】:
假设我有一个元素,里面想放一个不定数量的
<ul>
for(i = 0; i < numOfLi; i++)
<li> {{ stuff }} </li>
</ul>
【问题讨论】:
标签: jquery templates zepto icanhaz.js
假设我有一个元素,里面想放一个不定数量的
<ul>
for(i = 0; i < numOfLi; i++)
<li> {{ stuff }} </li>
</ul>
【问题讨论】:
标签: jquery templates zepto icanhaz.js
icanhaz(小胡子)确实包含一种循环方式。
在javascript中:
var listOfStuff = {stuff: [
{key: "1", desc: "First"},
{key: "2", desc: "Second"}
]};
$("#mySelectBox").append(ich.myTemplate(listOfStuff));
在你看来:
<script id="myTemplate" type="text/html">
{{#stuff}}
<option value="{{key}}">{{desc}}</option>
{{/stuff}}
</script>
<select id="mySelectBox">
</select>
{{#stuff}} 和 {{/stuff}} 分隔列表。查看moustache的Sections部分了解详情。
编辑:如果您使用的是 jQuery 1.9 或更高版本,请务必查看 this answer。
【讨论】:
Uncaught Error: Syntax error, unrecognized expression: <option value="1">First</option> <option value="2">Second</option> 似乎它已经解析了小胡子,但是您是否会引发这个错误?
jquery 1.9.1 上面的结构。它不起作用 - 查看stackoverflow.com/questions/15650487/… 中描述的问题/答案
我不确定 iCanHaz,但 John Resig(JQuery 的创建者)在他的博客上发布了这种方法:
偷偷摸摸...
<script type="text/html" id="user_tmpl">
<% for ( var i = 0; i < users.length; i++ ) { %>
<li><a href="<%=users[i].url%>"><%=users[i].name%></a></li>
<% } %>
</script>
【讨论】:
不。做不到。您需要动态呈现 html。
【讨论】: