当您搜索如何动态设置段落或标题元素的文本时,您会遇到几乎相同的代码行:
document.getElementById("header").innerHTML = "some text";
Run Code Online (Sandbox Code Playgroud)
但这并不完全正确.请看以下示例:
<html>
<head />
<body>
<h1 id="header" />
<p id="p1" />
<script type="text/javascript">
document.getElementById("header").innerHTML = "header";
document.getElementById("p1").innerHTML = "p1";
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
第一行的JavaScript几乎删除p1从页,即使p1并header没有什么在原始的HTML做对方.在try ... catch块中包装第二个JavaScript行时,捕获的错误是:
document.getElementById(...) is null
Run Code Online (Sandbox Code Playgroud)
当您使用textContent而不是时,存在同样的问题innerHTML.我有点惊讶的是,每个人都说这是你应该如何更改元素的文本,当它真的不适合这个目的时.设置它的正确方法是什么?
小智 8
p并且h1不是"空元素",这意味着它们不会在打开它们的相同标记中关闭(如img和br).如果你这样写它们,它们就不是有效的标签,浏览器会忽略它们(这就是为什么document.getElementById找不到它们).试试这个:
<html>
<head></head>
<body>
<h1 id="header"></h1>
<p id="p1"></p>
<script type="text/javascript">
document.getElementById("header").innerHTML = "header";
document.getElementById("p1").innerHTML = "p1";
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8629 次 |
| 最近记录: |