如何在HTML元素中替换此文本?

时间:2013-08-09 21:32:29

标签: javascript html dom dom-manipulation

我有一个显示“香蕉”的字符串

我想用“Apple”替换它

这就是我所拥有的

<span id="Fruit">Banana</span>

这是我正在使用的脚本。

    var td1 = document.getElementById('Fruit');
    var text = document.createTextNode("Apple");
    td1.appendChild(text);

这就是它所显示的内容。

BananaApple

    <span id="Fruit">
    "Banana"
    "Apple"
    </span>

如何摆脱香蕉并将其替换为Apple?

<span id="Fruit">Apple</span>

4 个答案:

答案 0 :(得分:8)

只需更新innerHTML:http://jsfiddle.net/SNtmL/

document.getElementById('Fruit').innerHTML = "Apple";

答案 1 :(得分:5)

假设有一个textNode

var td1 = document.getElementById('Fruit'),
    text = document.createTextNode("Apple");
td1.replaceChild(text,td1.firstChild);

JS Fiddle demo

或者:

var td1 = document.getElementById('Fruit');
td1.firstChild.nodeValue = 'Apple';

JS Fiddle demo

或者:

var td1 = document.getElementById('Fruit'),
    text = 'textContent' in document ? 'textContent' : 'innerText';
td1[text] = 'Apple';

JS Fiddle demo

参考文献:

答案 2 :(得分:2)

您不想要新的文本节点,您想要更改现有节点。

快速而肮脏的解决方案是:

document.getElementById("Fruit").innerHTML = "Apple";

答案 3 :(得分:0)

为了更有效地从父级中删除所有节点,您始终可以使用while()条件:

var td1 = document.getElementById("Fruit"), text = document.createTextNode("Apple");
while(td1.hasChildNodes()) {
    td1.removeChild(td1.firstChild);
}
td1.appendChild(text);