Aber wie bekomme ich es hin den String '<tr id="f22"><td>foo</td><td>bar</td></tr>' mit appendChild() an das ende einer Tabelle?
Mit appendChild direkt gar nicht.
Möglichkeit 1: Man baut sich insertAdjacentHTML im Gecko nach, das geht ungefähr so:
function appendHTML (element, html_string) {
if (element.insertAdjacentHTML) {
element.insertAdjacentHTML("BeforeEnd", html_string);
} else if (document.createRange) {
var range = document.createRange();
if (!range.selectNodeContents || !range.createContextualFragment) {
return false;
}
range.selectNodeContents(element);
var fragment = range.createContextualFragment(html_string);
element.appendChild(fragment);
} else {
return false;
}
return true;
}
Das habe ich glaube ich mal aus http://www.faqts.com/knowledge_base/view.phtml/aid/5756 gebastelt.
Möglichkeit 2: Man parst den Code mit einem DOMParser-Objekt:
var parser = new DOMParser();
var node = parser.parseFromString(string, "text/xml");
table.appendChild(node);
So vom Schema her, ich habe das nicht ausprobiert.
Wohlgeformtheit ist natürlich nötig, vielleicht eine XHTML-Namensraum-Angabe, vielleicht vorher node = document.importNode(node, true);. :)
Mathias