我需要构建一个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/