Ga naar inhoud

javascript/css


anoniem

Aanbevolen berichten

Hoe kan ik met javascript de css properties van een object uitlezen? Stel ik heb een div: <div id="menu"></div> vervolgens maak ik deze op met een stylesheet in het document of vanaf buiten geladen: #menu { width: 400px; height: 400px; border: 1px solid black; } Nu wil ik met javascript deze waardes weer uitlezen, maar: prop = ''; for(p in menu.style) { prop += p + " -> " + eval(m[p])+ "n"; } alert(prop); geeft mij een keurige lijst van lege, undefined properties. Alleen als ik een style inline op een element toepas, dus opgenomen in de tag zelf, dat worden die waardes in het styleobject gezet. Lijkt mij nogal dom, of juist niet DOM.. net hoe je het bekijkt. Is er een andere manier?
Link naar reactie
Heb er niet echt goed naar kunnen kijken, maar werkt het ook niet als je de elementen iets specifieker benoemt. Dus zoiets (fouten voorbehouden): [code:1:466929aef1] var sProps = ''; var oMenu = document.all('menu'); for(var sItem in oMenu) sProps += sItem + ' -> ' + eval('oMenu.'+sItem); [/code:1:466929aef1] ps: DOM werkt met document.getElementById('menu') ps2: Weet het niet zeker, maar het lijkt mij logisch dat je gegevens van elementen uit het document pas kan uitlezen op het moment dat deze geparsed zijn (dus onload lijkt me het veiligst).
Link naar reactie
Ja de css definitie staat bovenaan in het bestand en ook middels een externe stylesheet maakt het niet uit. Gebruik maken van document.getElementById() maakt geen verschil in dit geval, dat wil zeggen, de waardes blijven undefined. Ik roep het stukje javascript op met een body.onload, maar ook als ik hem onder een button zet en het hele document dus geladen is blijven de properties undefined. Het maakt overigens niet uit welke browser ik gebruik. Mozilla geeft hetzelfde. In dit geval, ik wil de width weten, kan je er ook op een andere manier nog achterkomen, maar bij veel properties niet. Ik zou de waardes tussen <style>-tags zelf kunnen uitlezen, maar errr..
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...