我的JavaScript DOM代码无法输出简单文本,问题出在哪里?
问题原因
- 第一处错误:
document.getElementById("body")无法获取到body元素,你的<body>标签没有设置id="body"属性,该语句返回值为null,调用appendChild方法时会直接抛出类型错误。 - 第二处错误:你创建了文本节点
text,但没有将它插入到paragraph段落元素中,就算能正常插入元素到页面,也只会显示空段落,看不到文本内容。
修复方案
你可以选择任意一种方式修改:
方案1:保留getElementById写法,给body加id
给<body>标签添加id="body"属性,同时补充paragraph.appendChild(text)语句将文本节点插入段落,完整代码如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body id="body"> <script> const body = document.getElementById("body") const paragraph = document.createElement("p") const text = document.createTextNode("Hello, Mars") paragraph.appendChild(text) body.appendChild(paragraph) </script> </body> </html>
方案2:直接用document.body获取body元素
不需要额外给body加id,直接调用document.body即可获取页面的body元素,修改后代码如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <script> const body = document.body const paragraph = document.createElement("p") const text = document.createTextNode("Hello, Mars") paragraph.appendChild(text) body.appendChild(paragraph) </script> </body> </html>
内容的提问来源于stack exchange,提问作者user16770252
相关产品推荐
相关产品推荐

