Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 阵列无法与我的图片输出一起工作_Javascript_Html - Fatal编程技术网

Javascript 阵列无法与我的图片输出一起工作

Javascript 阵列无法与我的图片输出一起工作,javascript,html,Javascript,Html,我试着用一个数组来显示图片,这样每次延迟我都可以更改它,有点像幻灯片。问题是,只会加载第一张图片。当数组的计数器更改时,图片将无法加载 图像的路径都是正确的 <!DOCTYPE html>`enter code here` <html lang="en"> <head> <meta charset="UTF-8"> <title>Test2</title> <script>

我试着用一个数组来显示图片,这样每次延迟我都可以更改它,有点像幻灯片。问题是,只会加载第一张图片。当数组的计数器更改时,图片将无法加载

图像的路径都是正确的

<!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>
您需要使用getElementsByName来选择名称为的元素。它返回使用该名称的元素数组,因此要选择一个特定的数组,请使用从0开始的索引[index]。改为这样做:

document.getElementsByName('bild')[0].src = bilder[p]; 
选择使用name='bild'的第一个元素

另外,for语句有点无用。你可以改为:

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

在setTimeout中调用函数时,不需要将函数名放在引号中,也不能用括号括起来。

事实上,它与我使用的方法配合得很好。当我把它换成你的,它还是一样的result@CoreIce我在您的代码中发现了另一个错误,我正在编辑我的答案:另外,说您需要使用该选择器。@CoreIce我在这个答案中添加了您的另一个错误:您没有将字符串传递给setTimeout,只传递给SetTimeOutBillDauthoweter,zeit;