我需要构建一个jQuery模板,该模板具有月份下拉列表和月中的一天下拉列表.对于我来说,在我的每个 JSON模型项中包含一个月份列表和一天列表似乎有点过分,这些项目的值为1到31,这样我就
我已经在另一个答案中看到了如何在{{each}}中添加动态数组:
Can I declare local/temp variables within a jQuery template?
我可以在其中定义一个值为1到31的数组.但即使这样也有点冗长.有没有更好的方法在jquery模板中执行for循环?
我可能会找到一些日期对象来迭代日期特定情况,但是与循环用例相关的非日期呢?
我希望在模板体中完全定义循环而不使用外部全局变量.使用全局变量,我可以轻松使用{{each}}.
我已经找到了如何在jquery模板中添加另一个标签.这是for标签定义.在脚本引用jquery和jquery.tmpl.js之后添加:(function ($) {
$.extend(jQuery.tmpl.tag, {
"for": {
_default: {$2: "var i=1;i<=1;i++"},
open: 'for ($2){',
close: '};'
}
});
})(jQuery);
感谢Roel Kramers提供的textarea标签示例:
http://blog.sterkwebwerk.nl/2010/12/15/custom-jquery-template-tags-1/
另外,查看每个标记定义的jquery.tmpl源有很多帮助.
默认值是1次迭代的for循环.以下是定义模板主体以使用它的方法:
<script id="TestTemplate" type="text/x-jQuery-tmpl">
Day:<br/>
<select name="DayOfMonth">
{{for(i=1;i<=31;i++)}}
<option value="${i}">${i}</option>
{{/for }}
</select>
</script>
这是一个jsFiddle页面,可以看到它的运行情况:
http://jsfiddle.net/mjlang/qvzdV/
