Zdravím.
Dělám si script, který mi jedním klikem na tlačítko smaže více řádků než jeden v závislosti na jejich rowIndex.
Mám checkboxy a ve scriptu zjišťuji, jestli jsou zaškrtnuté. Pokud checkbox zaškrtnut je, pak se do pole uloží rowIndex dané řádky.
No a poté mám cyklus for
for (var x = 0; x < pole_s_indexrow.legth; x++)
{
tabulka.deleteRow(pole_s_indexrow[x]);
}
proměnná tabulka uchovává ID tabulky s těmi řádkami.
Jenže nastal problém v tom, že když přes cyklus smažu jednu řádku, automaticky se řádkám, které jsou dále, nastaví rowIndex o jedno nižší.
Nemohl by mi někdo poradit, jak toto ošetřit ?
Popřípadě mohu poslat celý script.
Možná bude lepší nemazat je, ale pouze je skrýt. To by mohlo jít, ne ? Nějak tabulka.getElementsByTagName('tr')[pole_s_indexrow[x]].style.display = "none";
Tak jsem si odpověděl sám... pardon za zbytečný topic, napadlo mě to až poté, co jsem to odeslal.
Hodím sem své řešení, které mi funguje - kdyby někdo řešil podobnou věc a nevěděl, jak na to.
http://konecny.php5.cz/WZ/js.txt
<HTML>Existuje i jiné řešení - mazat řádky v tabulce od konce.</HTML>
... nebo mazat vždy položku s indexem 0 :-)
S tabulkami a selecty jsou v JS problemy u IE. Nejbezpecnejsi reseni je celou tabulku vygenerovat znova a vypsat pomoci innerHTML.
for (var x = 0; x < pole_s_indexrow.legth; x++)
Pokud muzes, pouzivej "i" jako increment misto "x".
x,y,z se obvykle pouziva pro nazvy souradnic
s,t pro text, string
Ale samozrejme je to spravne, jen je to nezvykle..