Autor Zpráva
Dolphi
Profil
Mám takovýto seznam:

<a href="" title="" class="cervena" id="ida_27">Odkaz 1</a>
<a href="" title="" class="cervena" id="ida_1">Odkaz 2</a>
<a href="" title="" class="cervena" id="ida_28">Odkaz 3</a>
<a href="" title="" lass="modra" id="idb_2">Odkaz 4</a>
<a href="" title="" class="cervena" id="ida_3">Odkaz 5</a>
<a href="" title="" class="modra" id="idb_4">Odkaz 6</a>

a potřeboval bych nějak dynamicky zobrazovat a skrývat položky buďto červené, nebo modré - v závislosti na akci uživatele :) Můžete mi někdo prosím poradit?
los
Profil *
Na akciu používateľa zavesíš obslužnú funkciu, ktorej pošleš v argumente CSS triedu, ktorú chceš schovať:

function changeAnchors (hide)
{
var el, els = document.getElementsByTagName ("a");

for (var i = 0; el = els [i]; ++i)
if (el.id.substr (0, 2) == "id")
el.style.display = (el.className == hide? "none": "");
}

changeAnchors ("modra");

Tá funkcia prebehne každý element "a" a ak sa jeho CSS trieda rovná zadanej triede, tak ho schová, ináč ho zviditeľní.

V tomto prípade by mohlo byť lepšie pozerať sa skôr na id - nebude to ovplyvňovať viditeľnosť elementov "a", ktoré nemajú id v požadovanom tvare (v predchádzajúcom prípade by to šlo tiež dosiahnuť kontrolou, či má element "a" jednu z CSS tried "modra" alebo "cervena", ale v prípade, že by si neskôr doplnil ďalšie typy, musel by si meniť aj JavaScript - v prípade použitia nasledujucej funkcie by si použil napr. element s id="idc_1" a kód JavaScriptu by si meniť nemusel):

function changeAnchors (hide)
{
var el, els = document.getElementsByTagName ("a");

for (var i = 0; el = els [i]; ++i)
if (el.id && el.id.substr (0, 2) == "id" && el.id.charAt (3) == "_")
el.style.display = (el.id.charAt (2) == hide? "none": "");
}

changeAnchors ("a");
Dolphi
Profil
Díky moc, po drobných úpravách to dělá přesně to, co chci. Ještě jednou díky.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0