如何使用JavaScript在HTML文档中插入文本?

时间:2013-06-02 02:54:42

标签: javascript html random

我想用span“randMsg”替换id元素并使用字符串"saying"。这就是我现在所拥有的:

 document.getElementById('randMsg').write(saying);

有什么想法吗?我是一个JavaScript菜鸟,我做错了什么?

3 个答案:

答案 0 :(得分:1)

您可以使用textContent属性更新元素内的文本:

document.getElementById("randMsg").textContent = "Replaced Content";

http://jsfiddle.net/RaGng/

或者,如果您需要在IE8及更低版本中使用它,则可以检测对textContent的支持,如果不支持,则可以使用非标准innerText代替:

var el = document.getElementById("randMsg"),
    msg = "Replaced Content";

("textContent" in el) ? el.textContent = msg : el.innerText = msg;

http://jsfiddle.net/RaGng/4/

答案 1 :(得分:1)

以下W3C DOM code适用于所有主流浏览器,包括IE8及更早版本。

var node = document.getElementById('randMsg');
var textToUse = 'Hello, World!';

// Remove all the children of the node.
while (node.hasChildNodes()) {
    node.removeChild(node.firstChild);
}

// Now add the text.
node.appendChild(document.createTextNode(textToUse));

<强> Working JsFiddle here

您也可以使用innerText,但不支持Firefox:

node.innerText = textToUse;

或者,您可以使用textContent,但不支持IE版本8和旧版

node.textContent = textToUse;

Quirksmode对以上所有内容保持良好browser compatibility tables

答案 2 :(得分:0)

Working jsFiddle Demo

您必须设置元素的innerHTML属性。请考虑以下标记:

<span id="randMsg"></span>

在您的JS代码中:

var saying = 'Say Hello World';
document.getElementById('randMsg').innerHTML = saying;

你的结果将是:

<span id="randMsg">Say Hello World</span>

注意

不要忘记在元素之后添加这个脚本(或等待DOM准备好):

<body>
    <span id="randMsg"></span>
    <script>
        var saying = 'Say Hello World';
        document.getElementById('randMsg').innerHTML = saying;
    </script>
</body>