Autor Zpráva
Pesulap
Profil
Dobrý den,
potřebuji poradit.
Potřebuji z html stránky vytáhnout hodnoty value všech checkboxů na stránce. Bohužel jediné co mají je class="i_check".

Potřebuji nějaký cyklus, který mi vytáhne všechny hodnoty checkboxů, které mají class="i_check". Jejich počet bohužel nevím. Může se měnit.


Děkuji
Radovan789
Profil *
Pesulap:
A co ti brání udělej nekonečný cyklus pomocí for a pak breakneš cyklus když element nebude existovat, tedy == null.
Pesulap
Profil
Mno jo ale to by se museli nějak odlišit. aby ten parametr for cyklu sahal pořád po vyšší ne ?
Prosím o příklad.

Děkuji velice
Chamurappi
Profil
Reaguji na Pesulapa:
Když už chceš používat jQuery, to je tak těžké přečíst si dokumentaci? $(".i_check").each(…)


Reaguji na Radovana789:
Divný nápad. Proč nekonečný for s breakem, když podmínka pro opakování patří do druhého parametru foru?
Radovan789
Profil *
Chamurappi:
Proč druhý parametr nevynechat, když to funguje na všech prohlížečích ?
Chamurappi
Profil
Reaguji na Radovana789:
Protože to nedává vůbec žádný smysl.
Radovan789
Profil *
Chamurappi:
Prostě jsou 2 řešení. Jedno možná obsahuje míň řádků ale to neznamená že to moje je špatné, když se ti to zrovna nelíbí.
Pesulap
Profil
Myslím si ze to řešení od Chamurappiho je jednodušší a přehlednější. Děkuji velice za radu. Na spoustu věcí je více možných řešení, ale né každé je vhodné kvůli přehlednosti rychlosti a srozumitelnosti. Proč vymýšlet nové konstrukce, když je Jquery má už hotové..

Děkuji
Chamurappi
Profil
Reaguji na Radovana789:
Podmínka v inicializaci cyklu představuje přirozenou záruku konečnosti. Sestavit cíleně nekonečný cyklus a pak ho podmíněně přerušovat breakem je opravdu praštěné, nehledě na to, komu se jak líbí.


Reaguji na Pesulapa:
Proč vymýšlet nové konstrukce, když je Jquery má už hotové..
Ehm, for není součástí jQuery. Vůbec neporovnávám řešení s jQuery (které jsem naznačil) s optimálním řešením bez jQuery — to bych pochopitelně upřednostnil to bez… a těžko by šlo o nějakou „novou konstrukci“, na vyhledávání elementů podle tříd existuje řada hotových malých funkcí — řádově menších než je jQuery. Chtěl jsi jQuery, odpověděl jsem ti s jQuery…
Pesulap
Profil
Mno vždyt ano, asi jsi mě špatně pochopil, ale myslel jsem to tak. Chtěl jsem Jquery a ty jsi mi ho poslal. Proto bylo tvé řešení jasně lepší.
Radovan789
Profil *
Chamurappi:

Proč ?

for(var i=0; i<=10;i++) {
alert(i);
}

for(var i=0; ;i++) {
alert(i);
if(i==10) {
break;
}
}


Tyhle dva kódy fungují naprosto stejně (je to jen jinačí styl zápisu), i co se týče zátěže prohlížeče tak vtom není rozdíl, co je na druhém cyklu praštěného ? Prostě každej ma jinačí styl.
Timy
Profil
Radovan789:
Tyhle dva kódy fungují naprosto stejně (je to jen jinačí styl zápisu), i co se týče zátěže prohlížeče tak vtom není rozdíl, co je na druhém cyklu praštěného ? Prostě každej ma jinačí styl.
Zrovna v tomhle má 99 % normálních programátorů jednotný styl. A jak říkáš — kódy fungují stejně, tak proč to nezapsat stylem, který používá každý, tj. je pro všechny nejvíce čitelný? Ten tvůj kód je akorát více nepřehledný.
Radovan789
Profil *
Timy:
Jasně že je nepřehledný ale vůbec se mi nelibí výrok "praštěné". To break má svoje opodstatnění a někdy se bez něho nedá obejít. Například minule jsem řešil že mám na stránce <div id="element_1"> <div id="element_2"> <div id="element_3">. Jeho počet je pokaždé jiný. A teď jak spočítat kolik těch elementů je. Takže to donekončna ověřuje a až třeba element_241 neexistuje tak se to breakne a tím zjistím že jich je 240.
Timy
Profil
Radovan789:
Samozřejmě, že break má své opodstatnění, jinak by v jazyku vůbec nebyl. Ale to, cos napsal v [#11] je rozhodně špatně použitý break.

Mimochodem:
while (existuje element_i)
  i++
Marek88
Profil
[#13] Radovan789

var i=1;
var prvek=document.getElementById(i)
while(prvek!=null){
...
...
i++;
prvek=document.getElementById(i);
}

Jde to a žádný break tam neni.

EDIT: pozdě no... :)
Radovan789
Profil *
Timy:
Jenže od toho je to programování, vymyšlět svoje aplikace a mít ztoho radost. Peti lidem zadáš stejnou práci (nějakou složitější) a každej to napíše jinak. Vtom je ta genialita programování (jsme odlišní, každý má jinou představivost), to že to jde jednodušeji už je potom druhá věc, napřed vymyslet jak by to mělo fungovat.
Timy
Profil
Radovan789:
Klidně si z toho breaku měj radost, ale nic to nezmění na tom, že je to špatně použitý break. A různorodost syntaxe není genialita, ale mor.
_es
Profil
Radovan789:
for(var i = 1, e; e = document.getElementById("element_" + i); i++) {sprav niečo s elementom e }
ah01
Profil
Je to vlákno o jQuery, tak pro Radovan789 musím doplnit, že já bych je spočítat takto:
$('[id^="element_"]').length

A mam to nejen bez beraku, ale dokonce i bez foru.

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