Men du kan aldrig finde værdier sat i et stylesheet via elementet, der er du nødt til at gå ind i stylesheetet og finde reglen via selektoren osv. osv.
-- desværre virker det absolut ikke tilforladeligt, hvis det skal være nogenlunde xbrowser, for f.eks. Opera returnerer bare et næsten tomt objekt, hvis man adresserer document.styleSheets[0] eller via .getElementById ...
-- værdier på elementer kan aflæses, hvis man har sat dem i en style-attribut på selve elementet eller har sat det via javascript !-)
-- men hvad er formålet, for ofte skal man bare anskue udfordringen en anden vej, f.eks. gør jeg altid sådan med vis/skjul-kode:
var st = document.getElementById('minDiv').style; st.display = st.display != 'block' ? 'block' : 'none';
-- så vil den blive vist selvom display er sat til 'none' i stylesheetet !o]
Det er nok også meget godt at være klar i mælet og undgå at sammenblande begreberne ;o)
Et elements style-objekt er ikke som sådan en attribut på elementet og kan derfor ikke hentes med ELEMENT.getAttribute - eller sættes med ELEMENT.setAttribute :)
Bruger man DOM, skal attributter sættes med 'setAttribute' metoden - og aflæses med 'getAttribute'.
if (ELEMENT.id=="Rudolf") ELEMENT.className = "rensdyr";
- er gammel, ustandardiseret HTML-DOM. Med standardiserede ECMA-DOM bindinger, ser det sådan ud:
if (ELEMENT.getAttribute("id")=="Rudolf") ELEMENT.setAttribute("className", "rensdyr");
Dog gælder dette ikke style-objektet på et element. Du skal stadig bruge: if (ELEMENT.style.background=="blue") ELEMENT.style.background = "red";
Style-objektet på et element skal med andre ord ikke behandles som en alm. markup-attribute - men som en decideret property på 'element-objektet'.
'getAttribute' er som sagt ikke en del af JavaScript, men en binding mellem forskellige scriptsprog (som bygger på ECMA-standarden) og DOM - og bruges til aflæse attributter på (X)HTML-elementer. Den bruges f.eks. også, hvis du i IE vælger at bruge VBScript.
'color' er ikke en attribut på et (X)HTML-element, men en property på et (X)HTML-elements style-objekt - og kan derfor ikke aflæses med 'getAttribute'.
Derfor virker ingen af de to alerts herunder (i browsere, der overholder standarderne):
<div id="gnu" style="color:red"> </div>
<script type="text/JavaScript"> var foo = document.getElementById("gnu"); alert(foo.getAttribute("style").color); alert(foo.style.getAttribute("color")); </script>
-- jeg var da overbevist om, at du havde fået også, men det var jo så gringostar, der havde fået en andel ...
Synes godt om
Ny brugerNybegynder
Din løsning...
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.