Permalänk
Medlem

javascript och css

En vän frågade det här och eftersom det inte riktigt är mitt område och jag inte lyckades googla fram nått så frågar jag här.

Kan man med ett javascript ändra i css:en?
Istället för att använda getElementsByTagName och loopa igenom alla instanser.
Man kan ju skapa en ny css och sätta den som aktiv men det är ju lite bökigt.

Permalänk
Medlem

För att ändra stil på ett element med ID kan du ju använda getElementById, men det verkar som att du vill sätta en tag selector. Det kan jag inte hjälpa dig med, den smidigaste lösningen är väl den som du presenterade själv.

Visa signatur
Permalänk
Medlem

Jasså, så det går alltså inte.

Tackar.

Permalänk
Medlem

Det går att ändra reglerna i externa css men det görs på oilka sätt i olika UAs. Googla på bl.a. cssRule och besök t.ex. http://msdn.microsoft.com/library/default.asp?url=/workshop/a...

Visa signatur

10 RTFM
20 RTFAQ
30 STFW

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av andrin
Det går att ändra reglerna i externa css men det görs på oilka sätt i olika UAs. Googla på bl.a. cssRule och besök t.ex. http://msdn.microsoft.com/library/default.asp?url=/workshop/a...

Tack så mycket.
Det där gjorde susen.

skrev ihop den här funktionen:

function alterCSS(name, property, value) { for(i=0; i < document.styleSheets.length; i++) { if(document.styleSheets[i].cssRules) // Firefox { for(j=0; j < document.styleSheets[i].cssRules.length; j++) { if(document.styleSheets[i].cssRules[j].selectorText.toLowerCase() == name) { document.styleSheets[i].cssRules[j].style[property] = value; } } } else if(document.styleSheets[i].rules) // IE { for(j=0; j < document.styleSheets[i].rules.length; j++) { if(document.styleSheets[i].rules[j].selectorText.toLowerCase() == name) { document.styleSheets[i].rules[j].style[property] = value; } } } } }

Tar gärna emot förslag på förbättringar.