JacobMedlem sedan dec. 2000503 inlägg Jag vill änte en style på alla taggar som har ett visst ID:
function change(id){
var ch = document.getElementById(id);
if (ch.style.display=="none") {
ch.style.display=''
event.srcElement.src="img/open.gif"
}
else {
ch.style.display="none"
event.srcElement.src="img/fold.gif"
}
}
Problemet är att den bara ändrar första taggen med IDt.
Hur löser man detta.
Nexus86Medlem sedan okt. 20023 030 inlägg Id är meningen att det ska vara unikt genom alla taggar. Man får bara använda id en gång i ett dokument. Om du använder det flera gånger följer inte din sida html-standarden. Om du vill ändra för en hel sida får du använda klasser. Vet dock inte hur man ändrar det med javascript.
JacobMedlem sedan dec. 2000503 inlägg Jag hade en tanke med getElementByName men kan kunde tydligen inte ha namn på tr taggar.
Nexus86Medlem sedan okt. 20023 030 inlägg Namn ska även det vara unikt.
JojoxxMedlem sedan juni 20004 308 inlägg Som sagt, id måste vara unikt. Så här kan du ändra klass-egenskaper:
<style type="text/css">
.foo { color: blue; }
</style>
<script type="text/javascript">
function getStyleClassByName(className){
if(document.all){
for(var styleSheet=0;styleSheet<document.styleSheets.length;styleSheet++){
for(var rule=0;rule<document.styleSheets[styleSheet].rules.length;rule++){
if(document.styleSheets[styleSheet].rules[rule].selectorText=="."+className){ return document.styleSheets[styleSheet].rules[rule]; }
}
}
} else if(document.getElementById){
for(var styleSheet=0;styleSheet<document.styleSheets.length;styleSheet++){
for(var rule=0;rule<document.styleSheets[styleSheet].cssRules.length;rule++){
if(document.styleSheets[styleSheet].cssRules[rule].selectorText=="."+className){ return document.styleSheets[styleSheet].cssRules[rule]; }
}
}
}
return null;
}
</script>
<span class="foo">Foo?</span> - <span class="foo">Yes, Foo!</span>
<br/>
<a href="#" onClick="getStyleClassByName('foo').style.color='green';">Grön</a>
<a href="#" onClick="getStyleClassByName('foo').style.color='blue';">Blå</a>
JacobMedlem sedan dec. 2000503 inlägg Det fungerar nästa som jag vill, men kan man lägga till en ny class i ett stylsheet men javascript?
JojoxxMedlem sedan juni 20004 308 inlägg Vet inte. Har aldrig funnit någon anledning att undersöka saken :) Du kan ju skapa en "tom" klass (utan egenskaper) om du inte vill sätta något speciellt som default.
<style type="text/css">
.foo { }
</style>