Bla: Style von Listenelementen beliebiger Anzahl ändern

Beitrag lesen

1. Hallo // Text ist in Rot
   2. Hallo // Text ist in Blau
   3. Hallo // Text ist in Gelb

Nun möchte ich die Farben also umdrehen. Es soll also folgendes stehen:

1. Hallo // Text ist in Gelb
   2. Hallo // Text ist in Blau
   3. Hallo // Text ist in Rot

Ich möchte das auf beliebig viele Listenelemente machen, deswegen ist mein Problem die Schleife hinzukreigen.

Du musst lediglich den Stil des ersten mit dem des letzten Elements vertauschen, anschließend jenen des ersten+1 mit jenem des letzten-1 und so weiter, bis du in der Mitte, d.h. beim ersten+(anzahl/2) ankommst.
Das könnte ungefähr so aussehen:

var elemente = [ein Feld mit Elementen, zB aus getElementsByTagName]
var n = elemente.length - 1;
var s;

for (var i = 0; i < Math.floor(n / 2); i++) {
    s = elemente[i].style.color;
    elemente[i].style.color = elemente[n-i].style.color;
    elemente[n-i].style.color = s;
}

Fehler gibt's gratis dazu. Beachte, dass getElementsByTagName() auf das gesamte Dokument wirkt. Vielleicht möchtest du lieber mit getElementById() die betreffende Liste abgreifen und dann mit childNodes (im Browser eingebaut) oder immediateDescendants (aus der prototype-Bibliothek) arbeiten.

Aber wie komm ich an die Atribute ran.

Enweder so

document.getElementsByTagName("li")[i].getAttribute()

oder so

document.getElementsByTagName("li")[i].style.color

oder möglicherweise auch lieber mit getStyle(), denn die ersten beiden liefern nicht unbedingt das gewünschte Ergebnis.