有一项任务是创建几个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'/>
?
答案 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>