[HTML] 模板的用法

时间:2023-03-10 06:22:21
[HTML] 模板的用法
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="keywords" content="">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1" >
<meta name="description" content="" >
<title></title>
<script type="text/javascript" src="js/template.js" ></script>
<script type="text/template" id="app_tpl"><!-- 描述:建立模板 --> <div class="product">
<div class="imageContainer">
<img src="{#img#}" /><!--{##} 自己定义匹配 -->
<div class="layer">
<p>找同款</p>
<p>找相似</p>
</div>
</div>
</div>
<div class="content">
<p class="price">
<span class="price-text">¥{#price#}</span>
<span class="sum">{#sales#}人付款</span>
</p>
<p class="title">{#title#}</p>
<p class="store">
<span class="store-title">{#store#}</span>
<span class="adress">{#address#}</span>
</p>
</div>
</script>
</head>
<body>
<div id="app" class="ppa"></div>
</body>
</html>
<script type="text/javascript">
document.write(footerTpl);
</script>
<script type="text/javascript">
//命名空间:封装工具方法
var Util = {
//封装选择元素的方法
id:function(id){
return document.getElementById(id);
}, //封装ajax请求数据方法
ajax:function(url,callback){ //创建ajax对象
var xhr = new XMLHttpRequest();
//订阅事件
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
if(xhr.status == 200){
//var data = xhr.responseText;
var data = JSON.parse(xhr.responseText);
//console.log(xhr.responseText);
//处理数据
callback&&callback(data);
} }
}
//open方法
xhr.open('get',url,true);
//send方法
xhr.send(null);
} }
//console.log(Util.id('app_tpl').innerHTML);
//封装格式化模板方法
function formDataString(str,data){
return str.replace(/\{#(\w+)#\}/g,function(match,$1){
//console.log(this);//this作用域
//console.log(arguments);
console.log('match:'+match);//match实参集合
console.log($1);
return data[$1] === undefined?'':data[$1];
});//w+ 任意多个字符
}
var html = '';
var str = Util.id('app_tpl').innerHTML;
Util.ajax('data/list.json',function(data){
//console.log(data);
//console.log(data.list.length);
for(var i=0,len=data.list.length;i<len;i++){ var list = data.list[i]; html += formDataString(str,list);
}
Util.id('app').innerHTML = html;
});
</script>