Для браузеров, поддерживающих DOM3, вы можете использовать textContent :
document.getElementById("mylink").textContent = new_text;
Это работает в FF (тестирование в 3), Opera (тестирование в 9.6) и Chrome (тестирование в 1), но не в MSIE7 (не тестировалось в MSIE8)
Добавлен пример
Это не красиво, но должно работать в разных браузерах (протестировано на win в FF3, Opera9.6, Crome1 и MSIE7)
function replaceTextContent(element,text) {
if (typeof element ==="string") element = document.getElementById(element);
if (!element||element.nodeType!==1) return;
if ("textContent" in element) {
element.textContent = text; //Standard, DOM3
} else if ("innerText" in element) {
element.innerText = text; //Proprietary, Micosoft
} else {
//Older standard, even supported by Microsoft
while (element.childNodes.length) element.removeChild(element.lastChild);
element.appendChild(document.createTextNode(text));
}
}
(обновлено: добавлена поддержка фирменного внутреннего текста Microsoft)