如何优雅的用js动态的添加html代码

如何优雅的用js动态的添加html代码,第1张

一、使用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>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11513719.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存