Saya mencoba menampilkan gambar dengan array sehingga saya dapat mengubahnya per penundaan, seperti tayangan slide. Masalahnya, hanya gambar pertama yang akan dimuat. ketika penghitung array berubah, gambar tidak akan dimuat.

Jalur gambar semuanya benar

<!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
CoreIce 27 Oktober 2019, 16:37

1 menjawab

Jawaban Terbaik

Anda perlu menggunakan getElementsByName() untuk memilih elemen berdasarkan name=''. Itu mengembalikan array elemen yang menggunakan name itu, jadi untuk memilih yang spesifik, gunakan indeks [index] mulai dari 0. Lakukan ini sebagai gantinya:

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

Itu memilih elemen pertama yang menggunakan name='bild'

Juga, pernyataan for agak tidak berguna. Anda malah bisa melakukan:

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

Anda tidak perlu memasukkan nama fungsi dalam tanda kutip dan Anda tidak boleh memiliki tanda kurung saat memanggil fungsi dalam setTimeout.

-1
Rojo 27 Oktober 2019, 13:57