前一篇介绍了在网页中利用DOM API改变HTML架构与内容的方法。
要在HTML中插入HTML标签有两种做法:
假设一个情境,有一天华山论剑大会的主办人金小庸要拟一份参加者名单列表,他只有拿到一个阵列,要把阵列的资料输出到网页上,如果是利用DOM API提供的方法,请问他要怎麽做?
这是金小庸拿到的阵列:
var heros = [
{
name:'黄药师',
nickname:'东邪'
},
{
name:'欧阳锋',
nickname:'西毒'
},
{
name:'段皇爷',
nickname:'南帝'
},
{
name:'洪七公',
nickname:'北丐'
},
{
name:'王阳明',
nickname:'中神通'
}
];
金小庸要把名单输出到<ul class='list'></ul>
中间:
<h1>华山论剑参加名单</h1>
<ul class="list">
</ul>
如果以我们前一篇谈到的方法,会用for回圈的方式去捉资料,然後创造一个 <li>
的元素节点,把资料塞入<li>
元素节点,再把他们利用回圈一个一个appendChild()到 <ul class="list"> </ul>
中间。
var inviteList = document.querySelector('.list');
var len = heros.length;
console.log(len);
for (var i=0; i < len; i++){
var guest = document.createElement('li');
guest.textContent = heros[i].nickname + ' : ' + heros[i].name;
inviteList.appendChild(guest);
}
以上就是利用createElement()创造节点在网页中插入HTML标签的方式。
而另外一种方法是以回圈用 innerHTML 组完字串之後,再将它渲染出来。这种方法的优点是效能快,缺点是有资安风险,必须确定拿到的资料没有问题,才能用innerHTML在网页中插入标签。
一样的情境,金小庸一样拿到了一个阵列,跟一个准备要填的空白网页,这次要用innerHTML来加入邀请名单:
这是金小庸拿到的阵列:
var heros = [
{
name:'黄药师',
nickname:'东邪'
},
{
name:'欧阳锋',
nickname:'西毒'
},
{
name:'段皇爷',
nickname:'南帝'
},
{
name:'洪七公',
nickname:'北丐'
},
{
name:'王阳明',
nickname:'中神通'
}
];
金小庸要把名单输出到<ul class='list'></ul>
中间:
<h1>华山论剑参加名单</h1>
<ul class="list">
</ul>
使用innrHTML组字串的具体步骤如下:
var inviteList = document.querySelector('.list');
var guest = '';
var len = heros.length;
for(var i = 0; i < len ; i++){
guest += '<li>' + heros[i].nickname + ' : ' + heros[i].name;
}
inviteList.innerHTML = guest;
不论是innerHTML或是createElement()都是组字串的好方法,如果没有资安疑虑,innerHTML效能高,是首选。如果有资安疑虑,那就以createElement()来处理。
<<: 爬虫怎麽爬 从零开始的爬虫自学 DAY8 python变数使用
Mean Squared Error例题 Training examples (x, y): (1...
Environment python 3.7 cuda 11.5 cudnn 8.3.2.44 cm...
Virtual Memory tags: IT铁人 跟上一篇有点关系的内容,我们会利用Disk来代替...
=x= 🌵 COMPANY - Certificat 前台页面後端功能制作。 COMPANY - C...
前言: 此单元较为复杂,若元件观念较不熟悉的同学,请斟酌观看 这里会运用到props、emit、ES...