Når jeg klikker på de links der er, ændres classname på den pågældende id og boksen ændre farve. klikker jeg på alle links ændres alle classnames, og alle bokse ændre dermed farve. Det jeg gerne vil opnå er at når jeg klikker på et link, defaults alle de andre bokse tilbage til deres oprindelige classname.
Altså, kun en boks af gangen må have den farve defineret i css class .box. Har en boks allerede classname .box og man klikker på et link for at ændre en anden boks's farve skal den defaulte tilbage til det standard classname den havde.
Generelt er det en rigtig skidt idé at ændre CSS-klassen på et element, da det som oftest er en operation, der performer rigtig skidt. Det er langt bedre og mere effektivt at skifte de enkelte properties på elementets style objekt.
allright. men jeg skal jo stadig loope igennem alle a tags for at ændre style properties. Og mit oprindelige spørgsmål gik jo også ud på hvordan man looper. Jeg ved godt hvordan man ændrer et classname som kan ses herover. Jeg ved også hvordan man ændrer style properties.
Men hvordan finder jeg dynamisk alle a tages inden for et givent id og looper igennem dem ?
Attributter bør sættes og hentes med DOM Level 2+ metoderne setAttribute og getAttribute. Problemet er, at IE til og med version 7 bruger className som navn på attributten - mens alle andre standardiserede browsere (heriblandt IE 8) bruger class.
Derudover er der ingen grund til at spilde kræfter på at loope. I stedet gemmer man i den slags situationer en reference til det 'aktive' element i en variabel:
<script type="text/javascript"> var oColors = { changeme1: "#f00", changeme2: "#000", changeme3: "#00c" }; var oActive = null; function changeColor(sId) { if (oActive) oActive.style.background = oColors[sId]; oActive = document.getElementById(sId); oActive.style.background = "#f0f"; } </script>
Det jeg også skal opnå er at det skal finde fx alle a tags inden for et givent id. Fx.
<div id="nav"> <a></a> <a></a> </div>
<a></a> <a></a>
Dvs at den kun skal gøre det ved a tages inden for id'et nav. Den skal også automatisk finde ud af selv hvor mange a tags der er, eftersom det kan variere. Et loop.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.