对模板引擎功能更新完善
function myTpl(id,data) { var str = document.getElementById(id).innerHTML; str = str.replace(/\"/g,'\\"'); var inLp=false; var t={ 'for':function(s){ s = s.replace('/ /g',' ').replace('/ /g',' '); var sa = s.split(' '); return '");'+'var lpdata = data["'+sa[1]+'"];for(var i=0;i<lpdata.length;i++){'+';p.push("'; }, 'if':function(s){ s = s.replace('/ /g',' ').replace('/ /g',' '); var sa = s.split(' '); if(inLp) { return '");'+'if(lpdata[i]["'+sa[1]+'"]'+sa[2]+''+sa[3]+'){'+';p.push("'; } else { return '");'+'if(data["'+sa[1]+'"]'+sa[2]+''+sa[3]+'){'+';p.push("'; } }, 'else':function(){ return '");}else{;p.push("'; }, 'fn':function(s){ s = s.replace('/ /g',' ').replace('/ /g',' '); var sa = s.split(' '); if(sa[1]) { if(inLp) { return '"+'+sa[1]+'(lpdata[i]["'+sa[2]+'"])+"'; } else { return '"+'+sa[1]+'(data[i]["'+sa[2]+'"])+"'; } } else { return ''; } } }; var s = 'var p=[];p.push("'+str.replace(/[\r\n\t]/g,'').replace(/\[.*?\]/g,function(d){ var ms = d.match(/\[(.*?)\]/); ms = ms[1]; var r='',m; if(ms) { var pre = d.substr(0,2); if(pre=='[/') { r = '");};p.push("'; inLp=false; } else if(pre=='[=') { m = d.match(/=(.*?)\]/); if(m[1]) { if(inLp) { r = '"+lpdata[i]["'+m[1]+'"]+"'; } else { r = '"+data["'+m[1]+'"]+"'; } } else { r = d; } } else { m = ms.split(' '); if(m[0]) { if(m[0]=='for') { inLp=true; } r = t[m[0]](ms); } else { r = d; } } } else { r = d; } return r; })+'");return p.join("");'; var fn = new Function('data',s); return fn(data); }