Autor | Zpráva | ||
---|---|---|---|
stepanka Profil * |
#1 · Zasláno: 3. 7. 2009, 16:22:00
Ahoj,
prosím, pomozte někdo... Mám JS funkci pro zaškrtnutí/odškrtnutí všech checkboxů v daném objektu. Vypadá takto: function SelectAllFromGroup(gID) { var group = document.getElementById(gID); var inputs = group.getElementsByTagName('input'); var zatrzeno=true; var checkit=true; for ( var i = 0; i < inputs.length; i++ ) { if (inputs[i].checked == false) zatrzeno=false; } if (zatrzeno==false) { checkit=true; } else { checkit=false; } for ( var i = 0; i < inputs.length; i++ ) { inputs[i].checked = checkit; } } Funguje to, pokud mám jeden objekt (<td id="g">, <div id="g">), někde u toho <a href="#" onclick="SelectAllFromGroup(\'g\')">Označit vše</a> A já bych tu funkci potřebovala upravit takto: Potřebuju mít stejný odkaz "Označit vše", ale checkboxy jsou nyní v několika <td id="g"> buňkách tabulky. Přesněji řečeno mám v záhlaví tabulky odkaz "Označit vše" a potom načítám data z databáze a cyklem vypisuju několik řádků tabulky. Každá buňka je tedy otevřena a zavřena a i když mají všechny stejné id (id="g"), tak se označí jen checkbox v první buňce. Šlo by to nějak upravit, aby ta funkce uměla označit všechny checkboxy ve VŠECH objektech s id="g"? Mockrát děkuju. |
||
stepanka Profil * |
#2 · Zasláno: 3. 7. 2009, 17:45:48
Už nic, už to mám... samozřejmě jde nastavit ID celé tabulce, pak to funguje. Nevím proč mě to nenapadlo dřív..
|
||
los Profil * |
#3 · Zasláno: 3. 7. 2009, 22:28:25
Síce to už máš, ale:
1, V prvom cykle môžeš hneď po nájdení prvého nezaškrtnutého inputu cyklus ukončiť, t.j. použiť break. 2, Druhá podmienka by sa dala zapísať rovno jedným príkazom (checkit = !zatrzeno), ale v podstate premennú checkit vôbec nepotrebuješ, takže celá podmienka je navyše. V poslednom cykle stačí checkit nahradiť za !zatrzeno. Sú to drobnosti, ale keď sa takých drobností nahromadí viac, tak je potom celý program zbytočne neprehľadný. |
||
stepanka Profil * |
#4 · Zasláno: 5. 7. 2009, 10:25:39
los
Aha, děkuju... Nemohl bys mi tu funkci přepsat do té podoby, o které píšeš? Možná jsi něco malého zapomněl, nebo jsem Tě nepochopila s tím breakem, ale když to upravuju podle Tvého popisu, tak mi to moc dobře nefunguje... moc díky. |
||
Časová prodleva: 15 let
|
0