该数组不适用于我的图片输出

时间:2019-10-27 13:37:59

标签: javascript html

我试图显示带有数组的图片,以便可以按延迟更改它,就像幻灯片一样。问题在于,只有第一张图片会被加载。当数组的计数器更改时,图片将不会加载。

图像的路径都是正确的

<!DOCTYPE html>`enter code here`
<html lang="en">
<head>
     <meta charset="UTF-8">
    <title>Test2</title>
    <script>

        var bilder = []; 
        var zeit = 3000;
        var p = 0;

        bilder[0] = "../Bilder/Bild1.jpg";
        bilder[1] = "../Bilder/Bild2.jpg";
        bilder[2] = "../Bilder/Bild3.jpg";
        bilder[3] = "../Bilder/Bild4.jpg";

        function BildAutoWeiter()
        {
            document.bild.src = bilder[p]; 
            for( var i=0; i<= bilder.length; i++)                              
            {
                if(i <= bilder.length)
                {
                     p++;
                }
                else
                {
                    i = 0;
                }
            }
            setTimeout("BildAutoWeiter()", zeit);                       
        }
</script>
</head>
<body onload="BildAutoWeiter()">
<div>
    <img name ="bild" width="100%" height="50%">
</div>
</body>
</html>

1 个答案:

答案 0 :(得分:-1)

您需要使用getElementsByName()通过元素name=''选择元素。这将返回使用该name的元素数组,因此要选择特定元素,请使用从0开始的索引[index]。执行以下操作:

document.getElementsByName('bild')[0].src = bilder[p]; 

这将选择使用name='bild'

的第一个元素

此外,for语句也没有用。您可以改为:

function BildAutoWeiter()
{
  document.bild.src = bilder[p];
  p++;
  setTimeout(BildAutoWeiter, zeit);
}

setTimeout中调用函数时,您无需将函数名放在引号中,也不必包含括号。