我试图显示带有数组的图片,以便可以按延迟更改它,就像幻灯片一样。问题在于,只有第一张图片会被加载。当数组的计数器更改时,图片将不会加载。
图像的路径都是正确的
<!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>
答案 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
中调用函数时,您无需将函数名放在引号中,也不必包含括号。