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

问题描述 投票:0回答:1

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

图像的路径都是正确的

<!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>
javascript html
1个回答
-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中调用函数时也可以没有括号。

© www.soinside.com 2019 - 2024. All rights reserved.