给定初始数据:
var list=[{id:1,name"张三",head:"a.gif"},{id:2,name"李四",head:"b.gif"},...];
给定模板:
Var template='<div id="person$id"><span class="name">$name</span> <img class="head" src="$head"/> ';
请实现一个通用方法,使用初始化数据来装配模板。(提示:使用正则来匹配)如题,最好给出具体答案,谢谢了先。

解决方案 »

  1.   

    老实说,我还是第一次看到"装配模板",上网搜了下,找了个答案:
    http://www.jb51.net/article/25305.htm
      

  2.   

    之前自己就写过类似
    var fillTemplate = function () {
        var list = [{ id: 1, name: "张三", head: "a.gif" }, { id: 2, name: "李四", head: "b.gif"}];
        var template = '<div id="person$id"><span class="name">$name</span> <img class="head" src="$head"/> ';
        var result = "";
        for (var i = 0; i < list.length; i++) {
            var tempHtml = template;
            for (var name in list[i]) {
                if (list.hasOwnProperty(name)) {
                    tempHtml = tempHtml.replace(new RegExp("\\$" + name, "g"), list[name]);
                }
            }
            result += tempHtml;
        }
        return result;
    }
      

  3.   

    有点小问题修正一下var fillTemplate = function () {
        var list = [{ id: 1, name: "张三", head: "a.gif" }, { id: 2, name: "李四", head: "b.gif"}];
        var template = '<div id="person$id"><span class="name">$name</span> <img class="head" src="$head"/> ';
        var result = "";
        for (var i = 0; i < list.length; i++) {
            var tempHtml = template;
            for (var name in list[i]) {
                if (list[i].hasOwnProperty(name)) {
                    tempHtml = tempHtml.replace(new RegExp("\\$" + name, "g"), list[name]);
                }
            }
            result += tempHtml;
        }
        return result;
    }
      

  4.   

    忘了 在代码里面修改颜色无效
    修正的地方就是将其中一个地方的list改为list[i]
      

  5.   

    也谢谢二楼。
    老实说,我还是第一次看到"装配模板",上网搜了下,找了个答案:
    http://www.jb51.net/article/25305.htm