Autor | Zpráva | ||
---|---|---|---|
kajaman Profil |
#1 · Zasláno: 25. 5. 2009, 12:15:02 · Upravil/a: kajaman
tedy... asi s cyklem. ukázka zde. problém dělá funkce
na odstranění vybraných položek. Pokud je v seznamu více položek označených (třeba 5) a dám Odstranit vybrané, odstraní se třeba 3 a skript se zastaví. Bez chyby. při opětovném stisku Odstranit vybrané se opět odstraní několik... Pokud uvidíte další chyby, budu rád za upozornění, díky! |
||
Chamurappi Profil |
#2 · Zasláno: 25. 5. 2009, 12:31:11
Reaguji na kajamana:
Samotný popis problému napovídá, že jsi podcenil „živost“ kolekce childNodes. Jakmile odstraníš childNodes[0], bude v childNodes[0] to, co bylo v childNodes[1], a též se okamžitě zkrátí celková délka childNodes.length. |
||
kajaman Profil |
#3 · Zasláno: 25. 5. 2009, 12:32:56
tak jsem se nad tím zamyslel, a opravil to... ale je to takové "krkolomné"
původne: if(confirm('Opravdu smazat ' + smazat + 'polozek?')) { var rodic = seznam[0].parentNode; for (var i=0; i>seznam.length; i++ ) { if (seznam[i].childNodes[1].firstChild.checked) { rodic.removeChild(seznam[i]); } } nově: if(confirm('Opravdu smazat ' + smazat + 'polozek?')) { var rodic = seznam[0].parentNode; for (var i=seznam.length-1; i>=0; i-- ) { if (seznam[i].childNodes[1].firstChild.checked) { rodic.removeChild(seznam[i]); } } |
||
kajaman Profil |
#4 · Zasláno: 25. 5. 2009, 12:33:40 · Upravil/a: kajaman
Chamurappi
byl jsi rychlejší :-) ... je to správné řešení (mazání od konce)? |
||
Chamurappi Profil |
#5 · Zasláno: 25. 5. 2009, 12:55:49
Reaguji na kajamana:
Je to jedno z možných řešení, asi nejjednodušší. |
||
kajaman Profil |
#6 · Zasláno: 25. 5. 2009, 13:26:13
děkuju
|
||
Pinqui Profil |
#7 · Zasláno: 26. 5. 2009, 20:20:45
mám k tomu dotaz když mám soubor a v něm:
<div id="vypis"> </div> a vpisuji do něj vypis.innerHtml += text+vypis.innerHTML; ->nový text se přidává nahoru, jak omezím, že když tam bude vloženo už 20 řádků.. pomyslnejch tak když v proměnné text bude například 5nových řádků tak se odmaže 5 nejstarších?? tzn: text = 'radek20'; text ='radek19'; ... text='radek1'; a když přijde další: text = 'radekx'; text = 'radeky'; tak aby se smazali v tomto případě radek1 a 2 snad to rozluštíte. díky .-) |
||
Časová prodleva: 3 dny
|
|||
peta Profil |
#8 · Zasláno: 29. 5. 2009, 11:47:55
Pinqui
novy dotaz, nove tema. Ne, tohle se daneho netyka. vypis.innerHtml += text+vypis.innerHTML; tohle provede.... aaa += bbb + aaa vysledek je aaabbbaaa nikoliv aaabbb mas tam navic + do innerHTML vkladas string. Abys mohl zjistit radky, string musis rozdelit podle \n (nebo <br> nebo, co tam mas) pole = str.split('\n') cyklem pak vypises prvnich 5 radku vypis.innerHtml = ''; cyklus (0..5) vypis.innerHtml+=pole[i] +'\n' |
||
Časová prodleva: 15 let
|
0