Autor Zpráva
Senky
Profil
Zdravím,
ako som si tak robil jeden skript, prišiel som na to, že sa mi skript cyklí a nevedel som prečo. Časť skriptu vyzerala takto:
for (i = 0; i <= 8; i+3)

napodiv, prehliadač sa mi zasekol a nakoniec vypísal, že skript nereaguje, či ho chcem ukončiť. Skúsil som to teda takto:
var i=0;
while(i<=8)
{
  // robím robím...
  output += i + "<br />";
  i=i+3;
}
alert(output);

Vyhodilo mi to iba
0
0
0
0

atď...
Tiež som to skúsil na w3schools a po tom, čo som tuto zamenil kód na
<html>
<body>

<script type="text/javascript">
for (i = 0; i <= 5; i+3)
{
document.write("The number is " + i);
document.write("<br />");
}
</script>

<p>Explanation:</p>

<p>This for loop starts with i=0.</p>

<p>As long as <b>i</b> is less than, or equal to 5, the loop will continue to run.</p>

<p><b>i</b> will increase by 1 each time the loop runs.</p>

</body>
</html>


mi to začalo zase cykliť, až kým ho prehliadač nezastavil.
Vedel by mi niekto vysvetliť, čo je tam zlé a prečo sa to cyklí?
Ďakujem za odpovede...
Taps
Profil
Senky:
for (i = 0; i <= 8; i+3) proč dáváš i+3 ?
Senky
Profil
Pretože chcem vybrať každé tretie <td> v tabuľke...

EDIT: Tak už som to vyriešil cez while. Problém bol v tom, že ja som potom identifikoval ďalšie td-čká podľa premennej i, ibaže ja som počas toho, ako som cez getElementsByTagName('td').length zistil, koľko ich tam je, musím odpočítať ešte 3.

Ďakujem za ochotu...
fajzen
Profil
nie, problém je v tom, že výraz i+3 nezmení sám o sebe hodnotu uloženú v premennej i... musí byť i = i + 3 (takisto i++ neznamená i + 1, ale i = i + 1)
Senky
Profil
Aha, tak dobre vedieť do budúcna. Dik...

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: