Autor | Zpráva | ||
---|---|---|---|
Pesulap Profil |
#1 · Zasláno: 21. 12. 2010, 16:37:10
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 * |
#2 · Zasláno: 21. 12. 2010, 16:43:41
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 |
#3 · Zasláno: 21. 12. 2010, 16:45:49
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 |
#4 · Zasláno: 21. 12. 2010, 16:50:17
|
||
Radovan789 Profil * |
#5 · Zasláno: 21. 12. 2010, 16:56:59
Chamurappi:
Proč druhý parametr nevynechat, když to funguje na všech prohlížečích ? |
||
Chamurappi Profil |
#6 · Zasláno: 21. 12. 2010, 17:15:52
Reaguji na Radovana789:
Protože to nedává vůbec žádný smysl. |
||
Radovan789 Profil * |
#7 · Zasláno: 21. 12. 2010, 17:25:18
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 |
#8 · Zasláno: 21. 12. 2010, 17:31:12
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 |
#9 · Zasláno: 21. 12. 2010, 18:04:41
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 break em 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 |
#10 · Zasláno: 21. 12. 2010, 18:06:36
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 * |
#11 · Zasláno: 21. 12. 2010, 22:26:40
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 |
#12 · Zasláno: 21. 12. 2010, 22:43:40
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 * |
#13 · Zasláno: 21. 12. 2010, 23:02:38
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 |
#14 · Zasláno: 21. 12. 2010, 23:08:35
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 |
#15 · Zasláno: 21. 12. 2010, 23:11:41 · Upravil/a: Marek88
[#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 * |
#16 · Zasláno: 21. 12. 2010, 23:12:32
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 |
#17 · Zasláno: 21. 12. 2010, 23:17:35
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 |
#18 · Zasláno: 21. 12. 2010, 23:23:31
Radovan789:
for(var i = 1, e; e = document.getElementById("element_" + i); i++) {sprav niečo s elementom e } |
||
ah01 Profil |
#19 · Zasláno: 22. 12. 2010, 01:45:37
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. |
||
Časová prodleva: 13 let
|
0