Autor | Zpráva | ||
---|---|---|---|
vincent Profil * |
#1 · Zasláno: 4. 9. 2008, 20:24:50
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 |
#2 · Zasláno: 4. 9. 2008, 20:28:08
Přemýšlej, jaké číslo má druhý řádek po smazání prvního.
|
||
vincent Profil * |
#3 · Zasláno: 4. 9. 2008, 22:23:11
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 |
#4 · Zasláno: 4. 9. 2008, 22:38:46
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 |
#5 · Zasláno: 4. 9. 2008, 22:42:04
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); |
||
Tin Profil |
#6 · Zasláno: 5. 9. 2008, 00:02:10
a co už rovnou udělat cyklus
{dokud je co, maž!} |
||
habendorf Profil |
#7 · Zasláno: 5. 9. 2008, 01:48:07
Tin
Napsal jsem „Zkus cvičně“, aby pochopil princip. Není to kód, který bych mu radil ;o) |
||
peta Profil |
#8 · Zasláno: 5. 9. 2008, 07:53:58 · Upravil/a: peta
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 ... |
||
Časová prodleva: 16 let
|
0