求助如何使用js向div追加html代码

html-css08

求助如何使用js向div追加html代码,第1张

<!DOCTYPE html>

<html>

<head>

<script src="jquery.js"></script>

<div id="dictionary">

</div>

<div class="letters">

<div class="letter" id="letter-a">

<h3><a href="entries-a.html">A</a></h3>

</div>

<div class="letter" id="letter-b">

<h3><a href="entries-a.html">B</a></h3>

</div>

<div class="letter" id="letter-c">

<h3><a href="entries-a.html">C</a></h3>

</div>

<div class="letter" id="letter-d">

<h3><a href="entries-a.html">D</a></h3>

</div>

<!-- and so on -->

</div>

</head>

<body >

<script>

$(document).ready(function() {

$('#letter-c a').click(function(event) {

event.preventDefault()

$.getScript('c.js')

})

})

</script>

</body>

</html>

将写好的c.js文件放置同一个目录下面

var entries = [

{

"term": "CALAMITY",

"part": "n.",

"definition": "A more than commonly plain and..."

},

{

"term": "CANNIBAL",

"part": "n.",

"definition": "A gastronome of the old school who..."

},

{

"term": "CHILDHOOD",

"part": "n.",

"definition": "The period of human life intermediate..."

}

//省略的内容

]

var html = ''

$.each(entries, function() {

html += '<div class="entry">'

html += '<h3 class="term">' + this.term + '</h3>'

html += '<div class="part">' + this.part + '</div>'

html += '<div class="definition">' + this.definition + '</div>'

html += '</div>'

})

$('#dictionary').html(html)

//$('#dictionary').append(html)

这里的$('#dictionary').html(html)可以直接将需要的代码放入到指定的div内  (<div id="dictionary">)

也可以通过$('#dictionary').append(html)将代码附加到指定的div内  (<div id="dictionary">)

步骤

1、新建一网页文件“sample.html",用记事本或其它文本编辑软件(如UltraEdit)打开,输入如图所示的HTML代码。该网页文件包括一个蓝色的字符串,一个按钮和一个文本框。

2、JS代码可插入到”head"标签之间。编写Javascript代码,代码内容如图所示,并将该段代码复制到网页文件”sample.html“中标签”<head>"和“</head>之间,然后查看网页文件的显示内容。

大段的 HTML 嵌入到 JS 里结果就是悲剧。不能代码高亮不能自动缩进,太难维护了。

我的经验是,直接把 HTML 单独写到一个浏览器能访问到的文件里,比如 template/foo.html。然后 JS 里发一个同步 XHR 请求去读这个文件,例如:

var html = Template.load('/template/foo.html')

var target = document.getElementById('xxx')

target.innerHTML = html

Template 是一个工具类,负责发送同步 XHR 请求并返回结果。

这样在开发的时候,模板文件和 JS 代码分离,非常好维护。

当然这样做的话,上线的时候总发 XHR 请求也不是办法。所以在打包 JS 之前,我一般会通过脚本把所有的 Template.load('.*') 提取出来,替换成对应 HTML 的内容。这样在开发时非常方便,上线时也没有性能问题。

比如上面的代码被打包工具跑一下就变成了:

var html = "<ol>\n<li class=\"xxx\">...</li>\n</ol>"// 引号里是 /template/foo.html 对引号、换行做了转义之后的内容,由工具自动生成

var target = document.getElementById('xxx')

target.innerHTML = html