function template(wrapParent,data){
var wrapParent = getObj(wrapParent);
var tplhtml = getAttr(wrapParent, "data-html");
var tplstr = getObj(tplhtml).innerHTML;
var re = /{{s*(w+)s*}}/g;
if(data instanceof Array){
var strtemp = '';
for(var i=0; i<data.length; i++){
strtemp += dataHtmlStr(data[i]);
}
wrapParent.innerHTML = strtemp;
}else if({}.toString.call(data).split(" ")[1].toLowerCase().slice(0,-1)== 'object'){
wrapParent.innerHTML = dataHtmlStr(data);
}else{
throw '数据格式不正确!';
}
function dataHtmlStr(data){
return (function(){
return tplstr.replace(re,function(matchs,key){
return data[key];
})
})();
}
function getObj(id){
return document.getElementById(id);
}
function getAttr(obj,attr){
return obj.getAttribute(attr);
}
}
调用:
var data = {
name : 'zhl',
age : 30,
showbool : false
};
template('context',data);