一、使用javascript 模板引擎
用javascript预编译模版,就是动态修改模板文件使之成为一个可用的静态HTML文件。 我平时会使用artTemplate,性能很好而且易上手。
编写模板
使用一个type="text/html"的script标签存放模板:
<script id="test" type="text/html"><h1>{{title}}</h1>
<ul>
{{each list as value i}}
<li>索引 {{i + 1}} :{{value}}</li>
{{/each}}
</ul>
</script>
渲染模板
var data = {
title: '标签',
list: ['文艺', '博客', '摄影', '电影', '民谣', '旅行', '吉他']
}
var html = template('test', data)
document.getElementById('content').innerHTML = html
二、使用CoffeeScript
CoffeeScript支持类似于Python的跨行字符串,这样很轻易的就能保持HTML结构的可读性,而不需要使用“+”或者采用拼数组的形式。
str="""<div class="dialog">
<div class="title">
<img src="close.gif" alt="关闭" />关闭
</div>
<div class="content">
<img src="delete.jpg" alt="" />
</div>
<div class="bottom">
<input id="Button2" type="button" value="确定" class="btn"/>&nbsp&nbsp
<input id="Button3" type="button" value="取消" class="btn"/>
</div>
</div>
"""
js在特定位置动态添加html可以利用HTML DOM appendChild() 方法。例子:
var div1 = document.createElement("div")
div1.id = "div1"
var div2 = document.createElement("div")
div2.id ="div2"
document.body.appendChild(div1)
div1.appendChild(div2)
appendChild()定义和用法:
appendChild() 方法向节点添加最后一个子节点。
提示:如果您需要创建包含文本的新段落,请记得添加到段落的文本的文本节点,然后向文档添加该段落。
您也可以使用 appendChild() 方法从一个元素向另一个元素中移动元素。
从一个列表向另一个列表中移动列表项:
var node=document.getElementById("myList2").lastChild
document.getElementById("myList1").appendChild(node)
<!DOCYPE html><html>
<head>
<meta charset="UTF-8">
<title>
window.navigator
</title>
<style>
td {
border: 1px solid gray
padding: 3px 5px
}
</style>
<script>
onload = function(){
var tab = document.getElementsByTagName("table")[0]
var rows = tab.rows
var th = document.createElement("th")
th.innerHTML = "选择"
rows[0].insertBefore(th,rows[0].cells[0])
for(var i = 1 i < rows.length i++){
var td = rows[i].insertCell(0)
var ck = document.createElement("input")
ck.type = "checkbox"
td.appendChild(ck)
}
}
</script>
</head>
<body>
<table>
<tr>
<th>
数量
</th>
<th>
原价
</th>
</tr>
<tr>
<td>1</td>
<td>2</td>
</tr>
</table>
</body>
</html>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)