Autor | Zpráva | ||
---|---|---|---|
tweedy Profil * |
#1 · Zasláno: 12. 9. 2012, 12:14:08
Ahoj,
potřebuju vytvořit třídu v JS která má přečíst z html stránky divy podle jejich class, kterou mají stejnou (třeba "ramec"), a každému tomuto divu mám dát event na kliknutí, při jehož spuštění se zobrazí nějaká css vrstva s dalším obsahem, který se Váže k tomu divu "ramec". Je asi potřeba to nějak projet for cyklem, ale jinak moc nevím jak na to. Díky moc za každou odpověď |
||
Darker Profil |
Určitě by to šlo pomocí cyklu while (postupně projít všechny elementy) popř i cyklem FOR, pokud bys hledal jen jeden typ elementu (DIV).
V druhém případě: function nejakafunkce(event) { } var divy = document.body.getElementsByTagName("DIV"); for(var i=0; i<divy.length; i++) { if(divy[i].className=="ramec") divy[i].onclick = nejakafunkce; } |
||
Keeehi Profil |
#3 · Zasláno: 13. 9. 2012, 01:04:45
Ještě existuje
document.getElementsByClassName kdyby ti stačilo najít elementy s určitou class a že je to div nebo cokoliv jiného by tě nezajímalo.
|
||
Chamurappi Profil |
#4 · Zasláno: 13. 9. 2012, 10:47:04
Reaguji na Darkera:
„for(var i=0; i<divy.length; i++)“ Ke zjištění celkového počtu <div> ů se musí všechny <div> y vyhledat. Při každém průchodu. Protože metoda getElementsByTagName nevrací pole, nýbrž živou kolekci.
„Stejně předpokládám, že budeš po kliknutí provádět nějaký grafický efekt“ O tom nic nepsal. Reaguji na Keeehiho: Nefunguje ve všech prohlížečích. |
||
Darker Profil |
#5 · Zasláno: 13. 9. 2012, 12:23:37
Chamurappi:
„Při každém průchodu.“ Pokud za chodu divy nemažeš nebo netvoříš, funguje to bez problémů. |
||
Chamurappi Profil |
#6 · Zasláno: 13. 9. 2012, 12:26:48
Reaguji na Darkera:
To nepopírám, ale není to efektivní, protože zjištění length má lineární časovou složitost, nikoliv konstantní.
|
||
Časová prodleva: 12 let
|
0