zoukankan      html  css  js  c++  java
  • Template控件

       看了一下Microsoft的一个Template的JQuery插件,总是感觉使用起来特别别扭,我还是自己写一个吧。代码如下:

    (function($) {
        $.fn.template = function(tmpl, arrayData) {
            if ($.isArray(arrayData) && tmpl) {
                var pReg = /\$\{\s*[a-zA-Z]+(\.[a-zA-Z]+)*\s*\}/g;
                var places = tmpl.match(pReg);
                var props = new Array();
                for (var i = 0; i < places.length; i++) {
                    props.push($.trim(places[i].substr(2, places[i].length - 3)));
                }
                for (var j = 0; j < arrayData.length; j++) {
                    var item = arrayData[j];
                    var htmlItem = tmpl;
                    for (var k = 0; k < places.length; k++) {
                        (function(r, p, d) {
                            htmlItem = htmlItem.replace(r, (function(prop, data) {
                            var path = prop.split(/\./g);
                                var count = 0;
                                for (var l = 0; l < path.length; l++) {
                                    if (data.hasOwnProperty(path[l])) {
                                        data = data[path[l]];
                                        count++;
                                    }
                                    else {
                                        break;
                                    }
                                }
                                if (count == path.length) {
                                    return data;
                                }
                                else {
                                    return "";
                                }
                            })(p, d));
                        })(places[k], props[k], item);
                    }
                    this.append(htmlItem);
                }
            }
    return this; } })(jQuery);

    使用示例:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <title>模板控件测试</title>
        <link href="Style/site.css" rel="stylesheet" type="text/css" />
        <script src="Script/jquery.js" type="text/javascript"></script>
        <script src="Script/JTemplate.min.js" type="text/javascript"></script>
        <script type="text/javascript">
            $(function() {
            $("#content").template("<tr style='height:30px;'><td>${Name}</td><td>${ Age}</td><td>${ Adress.Street}</td></tr>", [{ Name: "zhoulq", Age: 28, Adress: { Street: "BaoAn", Road: 1} }, { Name: "sunyd", Age: 23, Adress: { Street: "FengXian", Road: 2} }, { Name: "yangql", Age: 24, Adress: { Street: "HuaGuang", Road: 4}}]);
            });
        </script>
    </head>
    <body>
    <table id="content" class="dgMain">
    <tr class="dgHeader" style="height:30px;"><th>姓名</th><th>年龄</th><th>街道</th></tr>
    </table>
    </body>
    </html>


     

  • 相关阅读:
    在CentOS7上安装MySQL5.7-YUM源方式
    自动重建索引
    Oracle EM12c 安装
    CentOS 7 安装oracle 11G
    oracle 11.2.0.4 dbca创建数据库时 报错ORA-12532
    CentOS 7 安装oracle 11.2.0.4 Error in invoking target 'agent nmhs' of makefile
    Oracle db file parallel write 和 log file parallel write 等待事件
    转:ORA-15186: ASMLIB error function = [asm_open], error = [1], 2009-05-24 13:57:38
    笔记:Memory Notification: Library Cache Object loaded into SGA
    Oracle补全日志(Supplemental logging)
  • 原文地址:https://www.cnblogs.com/kingge/p/2541042.html
Copyright © 2011-2022 走看看