DOM3 をサポートするブラウザーの場合は、textContentを使用できます。
document.getElementById("mylink").textContent = new_text;
これは FF (3 でテスト済み)、Opera (9.6 でテスト済み)、Chrome (1 でテスト済み) で動作しますが、MSIE7 では動作しません (MSIE8 でテストされていません)。
例を追加
きれいではありませんが、クロスブラウザで動作するはずです(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 独自の innerText のサポートを追加)