О единственной разнице между тем, что вы пробовали, и тем, что может сделать html-метод jQuery - это удаление содержимого элемента перед вставкой нового содержимого.Поэтому попробуйте сначала удалить содержимое, и, если вы только вставляете простой текст, создайте и вставьте текстовый узел вместо установки innerHTML.
Итак:
function replaceContent(id, s) {
var el = document.getElementById(id);
if (el) {
while (el.firstChild) {
el.removeChild(el.firstChild);
}
el.appendChild(document.createTextNode(s));
}
}