Autor | Zpráva | ||
---|---|---|---|
Pavka Profil |
#1 · Zasláno: 23. 1. 2007, 17:28:17
Mám prvky se stejnou strukturou a potřebuju jim přiřadit onClick event. Názvy jejich ID začínají stejně, ale počet těchto prvků je dynamický. Lze nějak zjistit veškeré ID co se na stránce vyskytnou? Díky.
|
||
Joker Profil |
#2 · Zasláno: 23. 1. 2007, 17:43:15
Nevím, jaká je kompatibilita s prohlížeči, ale šlo by to přes document.all. Určitě document.all funguje v IE a v Opeře. Další bych musel zjistit.
Něco takovéhoto: for(element in document.all){ if(element==toCoChci) neco(); } |
||
Dero Profil |
#3 · Zasláno: 23. 1. 2007, 19:20:47 · Upravil/a: Dero
Joker: Mozilla má stínovou podporu document.all, tzn. onu kolekci zná a lze s ní pracovat, ale dotaz na document.all vrací false.
Dobrým řešením by bylo použití kolekce document.getElementsByTagName("*") pro všechny ostatní prohlížeče než IE. |
||
Pavka Profil |
#4 · Zasláno: 23. 1. 2007, 19:38:32
Tedy použít document.all (podporuje IE, Opera?) a jestli je false (FF) použít document.getElementsByTagName("*")?
Podporují to i méně rozšířené browsery (např. Safary, Konqueror)? |
||
zero0x Profil |
#5 · Zasláno: 24. 1. 2007, 06:35:16
toto by ti snad mohlo pomoct: http://zero.wblog.sk/2007/01/23/ako-nastavit-chovanie-vsetkych-elentov -daneho-typu-v-dokumente/
|
||
Dero Profil |
#6 · Zasláno: 24. 1. 2007, 09:53:58
Pavka: Naopak, použít document.getElementsByTagName("*"), pokud vrátí alespoň jeden prvek, v opačném případě použít document.all - tím máš ošetřeny pravděpodobně všechny používané prohlížeče s podporou DOM. Ve svém prvním příspěvku jsem se špatně vyjádřil, omlouvám se.
Kód by byl takový: all_elements = document.getElementsByTagName('*').length > 0 ? document.getElementsByTagName('*') : document.all; A nějaké dodatečné čtení: http://dero.name/weblog/document-all-a-opera-9/ |
||
zero0x Profil |
#7 · Zasláno: 24. 1. 2007, 13:51:03
zdravim, este jedna vec ma napadla, nieco z tohto by neslo?
document.elements ?? |
||
Pavka Profil |
#8 · Zasláno: 24. 1. 2007, 20:38:49
Derova verze funguje na výbornou, díky.
|
||
Michal Till Profil |
#9 · Zasláno: 26. 1. 2007, 05:08:08
Konstrukci document.all nepouzivejte.
Vas dotaz nedava smysl. Id je id, neni to delane na vyber vsech elementu, ktere nejak zacinaji. K tomu jsou tridy. Muzete pouzit vicenasobne tridy stylem class="trida1 trida2". Kdyz se naucite jQuery (jquery.com) konstrukci $('.trida1') dostanete pole prvku ktere jsou (i) dane tridy. |
||
Joker Profil |
#10 · Zasláno: 26. 1. 2007, 08:09:10
Dero
Dobrým řešením by bylo použití kolekce document.getElementsByTagName("*") pro všechny ostatní prohlížeče než IE. Ale zdá se, že to funguje i pro IE6 a IE7 Akorát je zajímavé, že document.getElementsByTagName("*").length vrací v IE jinou hodnotu než v Opeře a Firefoxu. |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0