我写了一些代码来制作进度条。但是当我在第30行运行代码时出现错误:
我真的很困惑我该做什么。任何人都可以帮我解决我的问题吗?
JS代码:
function progress(){
var min = 0;
var max = 10;
var x = Math.floor(Math.random() * (max - min)) + min;
for(var i = 0; i < x; i++){
var einfuegen = document.createElement('div');
einfuegen.className = 'statusbar';
document.body.appendChild(einfuegen);
var einfuegen2 = document.createElement('img');
einfuegen2.id = 'bild';
einfuegen2.name = 'bild';
einfuegen2.src = 'project_status.gif';
var zielort = document.getElementsByClassName('statusbar');
zielort.appendChild(einfuegen2);
}
}
HTML CODE:
<input name="Progress" type="button" onclick="progress()" value="Progress!" />
<div class="statusbar">
<img id="bild" name="bild" src="project_status.gif"/>
</div>
答案 0 :(得分:1)
getElementsByClassName返回元素数组。试试这个。
var zielort = document.getElementsByClassName('statusbar')[0];
zielort.appendChild(einfuegen2);
答案 1 :(得分:1)
这会将它追加到开头(索引0):
var zielort = document.getElementsByClassName('statusbar');
zielort[0].appendChild(einfuegen2);
答案 2 :(得分:0)
这不起作用,因为getElementsByClassName(参见名称中的复数形式)确实会返回一个元素集合(有点像数组),即使它只找到一个元素。
但是整个部分是多余的,因为你在几行之前就从脚本中创建了元素并将其存储在&#34; var einfuegen&#34;。
只需使用
einfuegen.appendChild(einfuegen2);