Autor Zpráva
habendorf
Profil
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
Jakym zpusobem je urcena option, ktera se ma nastavit jako selected? Leo
habendorf
Profil
Leo: Staticky, prostě vím kterou chci. Např.: 5. select - 3. option, 6. select - 2. option atd.
Leo
Profil
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
Leo: díky moc, vyzkouším, kdyžtak se ještě ozvu
Leo
Profil
Samozrejme tam mam chybu - v cyklu ma byt _roletka s podtrzitkem na zacatku. Leo
habendorf
Profil
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!
Toto téma je uzamčeno. Odpověď nelze zaslat.