1

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

我想用“Apple”替换它

这就是我所拥有的

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

这是我正在使用的脚本。

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

这就是它的表现。

香蕉苹果

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

我怎样才能摆脱香蕉并用苹果代替它?

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

4 回答 4

8

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

document.getElementById('Fruit').innerHTML = "Apple";
于 2013-08-09T21:33:56.823 回答
5

假设一个textNode

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

JS 小提琴演示

或者:

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

JS 小提琴演示

或者:

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

JS 小提琴演示

参考:

于 2013-08-09T21:35:50.533 回答
2

你不想要一个新的文本节点,你想改变现有的。

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

document.getElementById("Fruit").innerHTML = "Apple";
于 2013-08-09T21:34:43.550 回答
0

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

var td1 = document.getElementById("Fruit"), text = document.createTextNode("Apple");
while(td1.hasChildNodes()) {
    td1.removeChild(td1.firstChild);
}
td1.appendChild(text);
于 2013-08-09T21:46:56.257 回答