Style-Attribut lässt sich generell nicht setzen / auslesen
Raphael
- javascript
Guten Morgen zusammen,
bei den weiteren Recherchen zu meinem gestrigen Posting bin ich über folgendes gestolpert:
Ich habe eine Tabelle:
<table border=1 id="tabelle" style="width:100%;">
<tr id="tr0"><td test="4">test01</td><td>test02</td></tr>
<tr id="tr1"><td height="10">test11</td><td>test12</td></tr>
<tr id="tr2"><td height="10">test21</td><td>test22</td></tr>
</table>
Die Tabelle wird auf der Webseite wie gewünscht angezeigt (über die volle Breite). Nun lasse ich mir mit folgendem Code den Namen, den Wert sowie die Art des Attributs/Ereignisses (Knotens) anzeigen:
var hoehe="";
for (i=0;i<document.getElementsByTagName("table")[0].attributes.length;i++)
hoehe += document.getElementsByTagName("table")[0].attributes[i].nodeName+" , "+document.getElementsByTagName("table")[0].attributes[i].nodeValue+" , "+document.getElementsByTagName("table")[0].attributes[i].nodeType+"<br>";
Dabei wird (Ausschnitt) folgendes ausgegeben:
border,1 ,2
id, tabelle, 2
style, null, 2
Daraufhin habe ich mir mit dem gleichen Code die Atrribute/Ereignisse des td[0] ausgeben lassen und dabei festgestellt, dass folgende Eigenschaft (wie gewünscht) neu definiert wurde:
test, 4, 2
Nun die Preisfrage: Wieso kann ich alle Attribute setzen und auch neue definieren, aber habe keinen Zugriff auf das style-Attribut?
(Wenn es hilft: Ich brauche das für Intranet, also reicht es, wenn die Vorschläge in neuren IEs laufen.)
MfG,
Raphael
Hi,
Nun die Preisfrage: Wieso kann ich alle Attribute setzen und auch neue definieren, aber habe keinen Zugriff auf das style-Attribut?
Du hast mal getAttribute() probiert?
(Wenn es hilft: Ich brauche das für Intranet, also reicht es, wenn die Vorschläge in neuren IEs laufen.)
Ich würde Styles direkt mit der dazugehörigen Eigenschaft auslesen (bzw. tue es auch immer so ;-)): alert(document.getElementById("tabelle").style.width);
Gruß, Cybaer
Hi, wenn ich es mit getAttribute() probiere, bekomme ich immerhin schon mal [object] und nicht null zurück, mache ich es mit document.getElementById("tabelle").style.width bekomme ich eine leere Hinweisbox.
Setzen kann ich es
document.getElementById("tabelle").style.width = "75%";
leider auch nicht. Das setzen ist für meine Intranetapplikation aber unbedingt notwendig.
Gruß,
Raphael
Hi,
Setzen kann ich es
document.getElementById("tabelle").style.width = "75%";
leider auch nicht.
Dann machst Du wohl noch einen anderen Fehler, der den Browser "verwirrt". ;-)
Bei mir funktioniert das (nebst Auslesen der alten & neuen Werte) nämlich tadelöser! :-))
Gruß, Cybaer
Hi,
dann schau doch bitte nochmal auf den Code aus dem ursprünglich Posting, ob du da einen Fehler entdeckst, da ich echt ratlos bin, zumal das Script ja ohne Fehlermeldung alle Attribute auflistet.
Gruß (schon mit deutlich weniger Haaren),
Raphael
Hi,
dann schau doch bitte nochmal auf den Code aus dem ursprünglich Posting, ob du da einen Fehler entdeckst, da ich echt ratlos bin, zumal das Script ja ohne Fehlermeldung alle Attribute auflistet.
Keine Zeit (mehr).
Zum Testen habe ich nur deine Tabelle genommen, und meine Anweisungen und es lief (ja, auch IE). ;-)
Gruß, Cybaer