Das folgende Script manipuliert einen Teil der Tabelle in einer Webseite:
var sel = document.createElement("td");
sel.appendChild(document.getElementsByName("time")[0].cloneNode(true));
//node kopieren und ins erzeugte TD-Element packen
var tr = document.createElement("tr");
tr.setAttribute("name", "via"+f);
//TR-Element erzeugen
var inp = document.createElement("input");
inp.setAttribute("type", "text");
inp.setAttribute("name", "inputfield");
inp.setAttribute("style", "width:150px;");
inp.setAttribute("id", "testid");
//INPUT-Elment erzeugen
var td1 = document.createElement("td");
var Text = document.createTextNode("Hallo");
td1.appendChild(Text.cloneNode(true));
td1.appendChild(inp);
//TD-Element erzeugen und INPUT-Element reinstekcen
tr.appendChild(td1.cloneNode(false));
tr.appendChild(td1.cloneNode(false));
//zwei leere TD-Nodes ins TR-Element einfügen
tr.appendChild(sel);
//das kopierte SELECT-Element samt TD einfügen
tr.appendChild(td1);
//TD und Textnode einfügen
document.getElementById("tb").insertBefore(tr, document.getElementById("total"));
//alles samt als neues Table Row Element in die Tabelle integrieren
Es klappt auch prima, allerdings wenn ich dann mittels:
document.getElementsByName("inputfield")[0].style..... versuche am grade erzeugten Objekt irgendwelche style Eigenschaften zu ändern, terminiert der MSIE mit der Begründung document.getElementsByName("inputfield")[0].style ist NULL oder kein Objekt. Komisch? ER hat es doch grade selbst erzeugt und sogar dargestellt. Offensichtlich werden vom MSIE einige Attribute ohnehin nicht beachtet. "inp.setAttribute("style", "width:150px;")" bleibt ohne Wirkung und Attribute wie "id" oder "value" lassen sich offensichtlich mit dieser Methode setzen.
Alle anderen Browser die ich bis jetzt probiert hab, haben das script auch ohne die eigenarten des MSIE ausgeführt. Was ist das für ein BUG? Kennt jemand das Phänomen?
Gruß, Markus**