Heló, hogyan tudok JavaScriptben egy ugyanazon elemben változtatni folyamatosan a kiírást, pl. a tömb elemeit? Itt mért csak az utolsót írja?
var cars = ["BMW", "Volvo", "Saab", "Ford", "Fiat", "Audi"];
var text = "";
var i;
for (i = 0; i < cars.length; i++) {
text += cars[i] + "<br>";
}
document.getElementById("demo").innerHTML = text;
var myVar = setInterval(kir, 1000);
function kir() {
var betuk = ["A", "B", "C"];
var text = "";
var i;
for (i = 0; i < betuk.length; i++) {
text += betuk[i];
document.getElementById("demo").innerHTML = text;
text = "";
}
}
Mindig kiüríted a text tartalmát és felülcsapod.
A cikluson belül:
első körben a text értéke A lesz, ezt kiíratod, majd üres string lesz a text
2. körben B lesz, ezt kiíratod, és kitörlöd megint
3. körben C lesz, ezt kiíratod és kitörlöd
Ez egy pillanat alatt lefut, és csak annyit látsz, hogy a C van kiírva.
Egy másodperc múlva ezt megismétled. Végeredményként úgy látszódik, mintha csak C lenne kiírva.
Javaslatom javításra:
var myVar = setInterval(kir, 1000);
var round = 0;
var betuk = ["A", "B", "C"];
function kir() {
document.getElementById("demo").innerHTML = betuk[round % 3];
round++;
}
Másodpercenként változtasd, hogy a tömb melyik elemét szeretnéd kiírni.
maradékos osztás, művelet, olyan mint az osztás (/), csak nem az osztás utáni eredményt adja vissza, hanem a maradékot.
1 % 3 = 1, mert 1-t 3-mal osztva 1 maradékot kapunk
2 % 3 = 2, mert 2-t 3-mal osztva 2 maradékot kapunk
3 % 3 = 0, mert 3-t 3-mal osztva nincs maradék
4 % 3 = 1, mert 4-t 3-mal osztva 1 maradékot kapunk
5 % 3 = 2
6 % 3 = 0
7 % 3 = 1
Ezzel lehet elérni könnyen, hogy a tömb 0, 1, 2 elemét kérjük le folyamatosan
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!