JavaScript und CSS

Status
Nicht offen für weitere Antworten.
W

Wiedsche

Hallo,
Ist es möglich gleich das gesamte Style eines Objektes mit JavaScript zu ändern? Also die gesamte Class z.B.

Beispiel:
ich habe ein <p class="Klasse1">lalala</p>
und da möchte ich per JavaScript nicht alle Eigenschaften einzeln, sondern gleich die ganze Class ändern ... aus "Klasse1" soll z.B. "Klasse2" werden :)

Geht das?
Oder muss ich alles einzeln (Hintergrund, Größe, ...) ändern?

Ciao Alex
 
die ganze klasse änderst du wie folgt:

document.getElementById("ID-von-dem-element").className="neuer-Klassen-Name";

bsw.:

document.all["ID-von-dem-element"].className="neuer-Klassen-Name";

dies funktioniert nur in DOM1 Browsern oder IE4, Opera funktioniert nicht da er noch nicht volle DOM1 unterstützung hat.

mfg
 
danke für die antwort


da fällt mir gleich noch eine Frage ein...
Was hat es auf sich mit diesem DOM?
 
Habe das auch mal versucht und es hat sogar geklapt. Bei einem onMouseOver setze ich die Hintergrundfarbe auf Grau und beim onMouseOut wird wieder der alte CSS Style gesetzt. Der Style wird auch gesetzt, nur die Hintergrundfarbe bleibt Grau. Ist das ein Bug oder muss man da noch was machen?

Code:
function over(obj) {
	obj.style.backgroundColor = '#CCCCCC';
}
function out(obj,depth) {
	obj.className = 'tree' + depth;
}

Code:
<td class='tree5' onClick="self.location.href = '/victorya/victorya.nsf/showprojects?openAgent'" name='t15'  onMouseOver="over(this)" onMouseOut="out(this, 5)"><nobr>(((2 sub 1) sub 2) sub 1) sub 2
 
Inline-Stylesheets haben Vorrang vor globalen Styleshheets.

Beim Mouseover änderst du das Inline-Stylesheet(das sind die style-Angaben direkt im Element).
Beim Mouseout änderst du aber das globale Stylesheet.

Du musst also beim Mouseout wieder explicit die Hintergrundfarbe ändern.
Alternativ könntest du auch nur mit globalen Stylesheets arbeiten....im class-Attribut kann man nicht nur einen Klassennamen notieren, sondern soviel man will;)
 
Status
Nicht offen für weitere Antworten.
Zurück