Autor Zpráva
maks
Profil
Ahoj,
mám v URL hash - domena.cz/stranka#hash a potřeboval bych na jeho základě aktivovat option v selectu, který má stejný nějaký atribut (asi id?) - přidat selected="selected", ale bohužel nevím jak.

Našel jsem, že zjištění hashe se dělá pomocí location.hash, ale nevím, jak to propojit s tím selectem.
<select>
  <option id="aa">aa</option>
  <option id="bb">bb</option>
  <option id="hash">hash</option>
</select>

Pokud bude v URL za # aa, bude selected první, pokud tam bude "bb", bude selected druhý a pokud "hash", bude selected třetí.


Děkuji
Joker
Profil
Překvapivě:
document.getElementById(id).selected = "selected";

hodnota id se získá z toho hashe
Chamurappi
Profil
Reaguji na makse:
I s omezením, že vybraný element musí být <OPTION>, bude skript vypadat takto:
var cil = document.getElementById(location.hash.substr(1));
if(cil && cil.tagName == "OPTION") cil.selected = true;


Reaguji na Jokera:
Proč dáváš do selected řetězec? Tam patří vždy boolean hodnota.
maks
Profil
Chamurappi
I s omezením, že vybraný element musí být <OPTION>, bude skript vypadat takto:
JS od tebe jsem přidal do <head>, ale ještě to asi bude chtít něco přidat k tomu selectu/optionu? JS není moje silná stránka, omlouvám se za možná hloupé dotazy.
Joker

Překvapivě:
zkoušel jsem set/getAttribute, tohle mě skutečně společně s mojí neznalostí nemohlo ani omylem napadnout :) Ani u tebe nevím, kam s tím řádkem kódu. :o(

Jinak vám oběma moc děkuji za vaší trplivost.
Chamurappi
Profil
Reaguji na makse:
JS od tebe jsem přidal do <head>
Dej ho až za <select>. Vykonává se okamžitě při načítání a nemůže pracovat s něčím, co na stránce ještě neexistuje.

zkoušel jsem set/getAttribute
Tyto metody se nevyplatí používat skoro na nic.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: