我想用span
“randMsg”替换id
元素并使用字符串"saying"
。这就是我现在所拥有的:
document.getElementById('randMsg').write(saying);
有什么想法吗?我是一个JavaScript菜鸟,我做错了什么?
答案 0 :(得分:1)
您可以使用textContent
属性更新元素内的文本:
document.getElementById("randMsg").textContent = "Replaced Content";
或者,如果您需要在IE8及更低版本中使用它,则可以检测对textContent
的支持,如果不支持,则可以使用非标准innerText
代替:
var el = document.getElementById("randMsg"),
msg = "Replaced Content";
("textContent" in el) ? el.textContent = msg : el.innerText = msg;
答案 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)
您必须设置元素的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>