Aber folgendes will mir einfach nicht gelingen:
Ich möchte über ein Javascript in Satz2 ALLE Attribute aus Satz1
übernehmen, die beiden Klassen sollen danach also zunächst den
gleichen Inhalt haben, später werden dann in Satz2 einzelne
Attribute geändert. Das ist alles.Wie zum Himmel kann ich also ALLE in Satz1 geführten Attribute in Satz2 übernehmen und zwar algorithmisch, damit ich nicht eine endlose Liste mit Zuweisungen eintippen muss?
DOM CSS erlaubt meines Wissens keinen direkten Zugriff auf die Liste der Deklarationen einer Regel, nur den Umweg über .style.eigenschaft, den du ja kennst. style ist aber keine Collection mit allen vorhandene Deklarationen. Du kannst lediglich über .style.cssText alle Deklarationen als Textinhalt auslesen. Bei .klasse1 {color:red; background-color:white;} als erste Regel im ersten Stylesheet wäre das entsprechend:
document.styleSheets[0].cssRules[0].style.cssText
oder
document.styleSheets[0].cssRules.item(0).style.cssText
und für MSIE
document.styleSheets[0].rules[0].style.cssText
oder
document.styleSheets[0].rules.item(0).style.cssText
Das liefert eben »color:red; background-color:white;« bzw. »COLOR: red; BACKGROUND-COLOR: white« im MSIE.
Wenn du jetzt eine zweite Regel hast, so müssten sich die Deklarationen einfach übertragen lassen:
document.styleSheets[0].cssRules[1].style.cssText=document.styleSheets[0].cssRules[0].style.cssText;
bzw.
document.styleSheets[0].rules[1].style.cssText=document.styleSheets[0].rules[0].style.cssText;
Getestet in MSIE 6 und Firebird 0.7.
Dann kannst du einzelne Eigenschaften der zweiten Regel wie gewohnt über .style.eigenschaft ändern.