А как насчет использования DOM подхода ?
var elem = document.getElementById("ElementID");
var text = document.createTextNode("Text");
text.nodeValue += " and more Text";
elem.appendChild(text);
Это не так удобно для поиска и замены, но гарантирует совместимость во всех браузерах.
Вам также может понадобиться удалить все элементы из узла, если вы используете этот подход.Вы можете сделать это как:
while ( elem.hasChildNodes() ) {
elem.removeChild( elem.firstChild );
}