Autor Zpráva
vincent
Profil *
Potřeboval jsem teď smazat nějaké řádky tabulky a narazil jsem na pro mě nepochopitelnou vyjímku... no zkuste:
<table id="tbl">
<tr><td>00</td><td>01</td></tr>
<tr><td>10</td><td>11</td></tr>
<tr><td>20</td><td>21</td></tr>
<tr><td>30</td><td>31</td></tr>
<tr><td>40</td><td>41</td></tr>
</table>
<script type="text/javascript">
document.getElementById("tbl").deleteRow(0);
document.getElementById("tbl").deleteRow(1);
document.getElementById("tbl").deleteRow(2);
document.getElementById("tbl").deleteRow(3);
document.getElementById("tbl").deleteRow(4);
</script>

2 řákdy zůstanou zachovány a to ve všech prohlížečích a dostanu z toho jen:
Uncaught Error: INDEX_SIZE_ERR: DOM Exception 1 soubor_zde (line 12)
No nenašel jsem k téhle vyjímce na internetu žádné použitelné informace...
nevíte někdo v čem je chyba?
habendorf
Profil
Přemýšlej, jaké číslo má druhý řádek po smazání prvního.
vincent
Profil *
habendorf
Díky na tohle bych asi nepřišel je to celkem vtipné myslel jsem že se to smaže v jednom průběhu a ono se to maže zatím po třech.
Zkoušel jsem zvětšit tabulku a mazat to
document.getElementById("tbl").deleteRow(0);
document.getElementById("tbl").deleteRow(0);
document.getElementById("tbl").deleteRow(0);
document.getElementById("tbl").deleteRow(1);
document.getElementById("tbl").deleteRow(1);
document.getElementById("tbl").deleteRow(1);
document.getElementById("tbl").deleteRow(2);
document.getElementById("tbl").deleteRow(2);
document.getElementById("tbl").deleteRow(2);
document.getElementById("tbl").deleteRow(3);
document.getElementById("tbl").deleteRow(3);
.
.
.
a to už fungovalo.
Nevím kdo stanovil že zrovna po třech ale budiž
habendorf
Profil
vincent
To jsi pochopil špatně.
Zkus cvičně
document.getElementById("tbl").deleteRow(0);
document.getElementById("tbl").deleteRow(0);
document.getElementById("tbl").deleteRow(0);
document.getElementById("tbl").deleteRow(0);
document.getElementById("tbl").deleteRow(0);

Už chápeš?
Chamurappi
Profil
Reaguji na vincenta:
Kdybys náhodou habendorfa ani napodruhé nepochopil, zkus změnit pořadí mazání:
document.getElementById("tbl").deleteRow(4);
document.getElementById("tbl").deleteRow(3);
document.getElementById("tbl").deleteRow(2);
document.getElementById("tbl").deleteRow(1);
document.getElementById("tbl").deleteRow(0);
— Takhle to funguje dokonce na jeden průběh.
Tin
Profil
a co už rovnou udělat cyklus
{dokud je co, maž!}
habendorf
Profil
Tin
Napsal jsem „Zkus cvičně“, aby pochopil princip. Není to kód, který bych mu radil ;o)
peta
Profil
vincent
kdyz mas
abcd(0123), smazes znak 0 dostanes
bcd(012), pak logicky znak 3 neexistuje, tudiz ti to zahlasi co? chybu
jo, neco jineho je, kdybys zmenil poradi a smazal jako prvni znak 3
nebo, kdyby jsi kazdemu znaku priradil id=c0 id=c1 ...

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:

0