phoenixv> ja, det virker, men jeg vil godt have det til at kunne lidt mere.
I første omgang forsøgte jeg med fem divs: to med class="dyr" der er blå, og tre med class="plante" der er røde. Så kan jeg ved at gå videre med dit script uden videre skifte farve på f.eks. alle med class="plante" og skifte dem tilbage igen. Nemlig med flg.:
<script type="text/javascript"><!--
function getDivsByClassName(cn) {
temp = new Array();
arr = document.getElementsByTagName("div");
for (i = 0; i < arr.length; i++)
if (arr[i].className == cn)
temp[temp.length] = arr[i];
return temp;
}
function changeStyle() {
divArray = getDivsByClassName("plante");
for (i=0; i<divArray.length; i++) {
if (divArray[i].style.backgroundColor != 'green') {
divArray[i].style.backgroundColor = 'green';
}else{
divArray[i].style.backgroundColor = 'red'
}
}
}
//--></script>
Men hvis nu én af de tre divs med class="plante" i forvejen er grøn, ville jeg godt have at scriptet kunne finde ud af kun at ændre farve på de der ikke er grøn og lade den grønne blive ved at være grøn. Og tilsvarende omvendt når der skal skiftes tilbage igen: hvis en af div'erne med class="plante" er rød og kun to er grønne, skal kun de to grønne skifte tilbage. Jeg har lavet et eksempel her:
www.dahr.dk/Web/getElementsByClass.html hvor jeg netop har ladet en af de tre divs med class="plante" i forvejen være grøn.
Der kan du se hvad der er galt hvis en af de tre div'er i forvejen har en forkert farve: så skifter den selvfølgelig modsat. Dvs. hvad der er grønt bliver rødt og hvad der er rødt bliver grønt. Men jeg vil godt have scriptet til kun at ændre farve på dem der har forkert farve og bevare farven på dem der har den rigtige.