如何自动创建元素?

时间:2017-02-18 22:49:49

标签: javascript jquery html

有一项任务是创建几个img元素并为它们添加一个src,它将立即显示。 我写了这个:

var mass_id = new Array();
for (var i = 0; i < links.length; i++) {  
    var td = document.createElement('img');
    td.id = 'img'+i;
    td.src = links[i];
    mass_id.push(td);
    document.getElementById(td.id).src = links[i];
}

links是指向图片的链接数组。

但是没有在开头<img id='img0'/>添加,我收到了错误:

  

“未捕获的TypeError:无法设置属性'src'为null”

那么如何通过避免<img id='img0'/>

来解决这个问题

1 个答案:

答案 0 :(得分:2)

问题在于这一行:

document.getElementById(td.id).src = links[i];

您正尝试从DOM中检索刚刚创建的元素,但您并未首先将其添加到DOM中。此外,无需两次设置src属性。您需要将虚拟元素添加到DOM中,如下所示:

document.getElementsByTagName('body')[0].appendChild(td);

请考虑以下工作代码段。

var mass_id = new Array();
var links = ["http://lorempixel.com/50/50/people/?1", "http://lorempixel.com/50/50/people/?2"]
for (var i = 0; i < links.length; i++) {  
var td = document.createElement('img');
td.id = 'img'+i;
td.src = links[i];
mass_id.push(td);
document.getElementsByTagName('body')[0].appendChild(td);
}
<body></body>