进度条上的Javascript参考错误,请帮助

时间:2014-05-15 11:06:28

标签: javascript compiler-errors

我写了一些代码来制作进度条。但是当我在第30行运行代码时出现错误:

  • ReferenceError:未定义einfuegen2
  • zielort.appendChild(einfuegen2)

我真的很困惑我该做什么。任何人都可以帮我解决我的问题吗?

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>

3 个答案:

答案 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);