Autor | Zpráva | ||
---|---|---|---|
habendorf Profil |
#1 · Zasláno: 21. 12. 2004, 12:30:31
Na onLoad potřebuji navázat funkci, která projde stránku, vyhledá určité select tagy (dané pořadím - např. pátý až dvacátý) a nastaví u každého atribut selected ke konkrétní option. Asi se to nějak dělá přes DOM, ale v tom se vůbec nevyznám.
Musím pracovat s kódem který přijde ze serveru a který nemohu ovlivnit, jinými slovy potřebuji to client-side (takže asi jedině JS). Můžete prosím někdo poradit? |
||
Leo Profil |
#2 · Zasláno: 21. 12. 2004, 12:58:31
Jakym zpusobem je urcena option, ktera se ma nastavit jako selected? Leo
|
||
habendorf Profil |
#3 · Zasláno: 21. 12. 2004, 13:05:20
Leo: Staticky, prostě vím kterou chci. Např.: 5. select - 3. option, 6. select - 2. option atd.
|
||
Leo Profil |
#4 · Zasláno: 21. 12. 2004, 13:15:55
Takze pole vsech selectu v documentu dostanes pres DOM:
_roletka = document.getElementsByTagName("select"); _pocetroletek = roletka.length; do pole "_vybrane" si nachystas indexy optionu, ktere se maji vybrat: _vybrane = new Array(2,4,6,8,0,1); To znamena, ze v 1. selectu (roletka[0]) bude vybrany option s indexem 2, ve 2. selectu s indexem 4, apod. Pak to projdes cyklem: for (var i=0;i<pocetroletek;i++) { var pom = _vybrane[i]; roletka[i].options[pom].selected = true; } Mohlo by to behat. Predpoklada to, ze v originalnim HTML kodu nebylo u zadneho option nastavene staticky selected (jinak bys je musel zrusit), netestuje to jestli option s danym indexem existuje atd., ale je to princip veci. Leo |
||
habendorf Profil |
#5 · Zasláno: 21. 12. 2004, 13:43:42
Leo: díky moc, vyzkouším, kdyžtak se ještě ozvu
|
||
Leo Profil |
#6 · Zasláno: 21. 12. 2004, 13:47:24
Samozrejme tam mam chybu - v cyklu ma byt _roletka s podtrzitkem na zacatku. Leo
|
||
habendorf Profil |
#7 · Zasláno: 21. 12. 2004, 14:04:48
Leo: Jasně, na to podtržítko jsem přišel, no problem. A protože to chci třeba až od 6.selectu, dám tam for (var i=5;i<pocetroletek;i++) a potom dále var pom = _vybrane[i-5].
Už jsem to odladil a je to přesně to co jsem chtěl, funguje to skvěle. Takže velké díky! |
||
Časová prodleva: 20 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0