当前位置 : 主页 > 网页制作 > JQuery >

jquery模板可以有for循环吗?

来源:互联网 收集:自由互联 发布时间:2021-06-16
我需要构建一个jQuery模板,该模板具有月份下拉列表和月中的一天下拉列表.对于我来说,在我的每个 JSON模型项中包含一个月份列表和一天列表似乎有点过分,这些项目的值为1到31,这样我就
我需要构建一个jQuery模板,该模板具有月份下拉列表和月中的一天下拉列表.对于我来说,在我的每个 JSON模型项中包含一个月份列表和一天列表似乎有点过分,这些项目的值为1到31,这样我就可以使用{{each}}语法构建选项.

我已经在另一个答案中看到了如何在{{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/

网友评论