我想用字符串替换带有“randMsg”的span
元素。这是我现在所拥有的:id
"saying"
document.getElementById('randMsg').write(saying);
有任何想法吗?我是 JavaScript 菜鸟,我做错了什么?
我想用字符串替换带有“randMsg”的span
元素。这是我现在所拥有的:id
"saying"
document.getElementById('randMsg').write(saying);
有任何想法吗?我是 JavaScript 菜鸟,我做错了什么?
以下W3C DOM 代码适用于所有主流浏览器,包括 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));
您也可以使用innerText
Firefox,但 Firefox 不支持:
node.innerText = textToUse;
或者,您可以使用IE 版本 8 和更早textContent
版本不支持的:
node.textContent = textToUse;
Quirksmode 对上述所有内容都有很好的浏览器兼容性表。
您可以使用该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;
您必须设置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>