利用JavaScript数组动态写入HTML数据节点

如果想要使用数组来写入HTML数据,绝对需要的是一个Key值,由Key来引导遍历数组各项;此外,使用DOM原生方法写入文档,用同一个CSS样式渲染它们,这样可以极大地减少开发时间和减少维护成本,此方法适用于批处理:

首先我们需要创建一个数组,类似于JSON:

1 var value = {
2     id1: {photo:\'../photo_1.jpg\',title:\'这是第一张图片!\'},
3     id2: {photo:\'../photo_2.jpg\',title:\'这是第二张图片!\'},
4     id3: {photo:\'../photo_3.jpg\',title:\'这是第三张图片!\'},
5     id4: {photo:\'../photo_4.jpg\',title:\'这是第四张图片!\'},
6     id5: {photo:\'../photo_5.jpg\',title:\'这是第五张图片!\'},
7     id6: {photo:\'../photo_6.jpg\',title:\'这是第六张图片!\'}
8     };

接下来,我们可以通过DOM方法定位一个现有元素,利用数组的Key值遍历并写入到DOM:

 1 var new_activity = document.getElementById(\'new_activity\');
 2 
 3 for(var key in value){    
 4     var dl = document.createElement(\'dl\');
 5     dl.innerHTML = \'<dd> <a href="#"> <img src="\'+value[key][\'photo\']+\'"> </a> </dd>\';
 6     dl.innerHTML+= \'<dt> <a href="#"> \'+value[key][\'title\']+\' </a> </dt>\';
7 dl.innerHTML+= \'<dd><a href="#"><img src="avatar.jpg"></a><p><a href="#">在水一方</a></p><p><a href="#">查看(<i>60</i>)</a> <span>剩余<i>5</i>人</span></p></dd>\'; 8 dl.innerHTML+= \'<dd><span><i>16</i>人报名</span> <span><i>¥</i><i>1000</i>元</span></dd>\'; 9 new_activity.appendChild(dl); 10 }

当然,我还用innerHTML写入了一些其他的东西,无需在意。重要的是要注意语法, \'+value[key][\'photo\']+\'

这样,HTML中可以写入一系列的<dl><dd><dt>元素,接下来为它们写一个CSS样式即可全部渲染它们。这是一个很好的动态写入的方法!