Autor Zpráva
kajaman
Profil
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
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
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
Chamurappi

byl jsi rychlejší :-) ... je to správné řešení (mazání od konce)?
Chamurappi
Profil
Reaguji na kajamana:
Je to jedno z možných řešení, asi nejjednodušší.
kajaman
Profil
děkuju
Pinqui
Profil
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 .-)
peta
Profil
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'

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