Hallo sven,
document.getElementById("test").innerHTML = ....
[...]
Aber es scheint ja nicht gerade sehr sauber zu sein.
Warum sollte das nicht sauber sein? Im DOM-Standard ist das so definiert: http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-36113835
Mit document.getElementById('id') bekommst Du ein Objekt einer Kindklasse von HTMLElement zurück. Dieses kannst Du dann manipulieren.
Allerdings sollte gesagt werden, dass innerHTML *kein* Standard ist. Allerdings wird innerHTML von Internet Explorer ab 5 [1], Mozilla ab 0.irgendwas, Netscape ab 6.irgendwas (6.1 auf jeden Fall, 6.0 bin ich mir nicht ganz sicher), Konqueror ab 2.2, Opera ab 7 unterstützt.
Wenn Du _ausschließlich_ Text ersetzten musst, dann kannnt Du eine andere Eigenschaft als innerHTML verwenden, die auch mit Opera 6 funktioniert:
document.getElementById('test').firstChild.nodeValue = 'blablabla';
Allerdings funktioniert diese Methode nur, wenn der Absatz auch einen Inhalt enthält, also musst Du am Anfang <p id="test"> </p> oder so schreiben. (das ist hier wichtig, da es einen Inhalt darstellt)
Viele Grüße,
Christian
[1] Der Internet Explorer 4 unterstützt innerHTML zwar auch, aber er kann kein DOM, daher schreibe ich ab 5. Wenn Du Internet Explorer 4 auch noch unterstützen willst, dann so:
if (document.getElementById) {
// DOM
} else if (document.all) {
// IE 4 methode mit document.all
} else {
// weder DOM noch IE4
}