我正在尝试将JS数据打印到HTML DOM中。
我无法打印。我做错了什么 ?
<!DOCTYPE html>
<html>
<head>
<title>JSON</title>
<script type="text/javascript">
// user is the property of obj1
var obj1 = {
user: "John",
age: 26,
country: "United States"
};
document.getElementById("results").innerHTML = obj1.user + "<hr>";
</script>
</head>
<body>
<div id="results"></div> <---- Expected to see John HERE
</body>
</html>
在我的控制台中
Uncaught TypeError: Cannot set property 'innerHTML' of null
Here is my JSFiddle
最佳答案
调用Javascript中的results
时,尚未加载ID为document.getElementById("results").innerHTML = obj1.user + "<hr>";
的div。
因此,window.onload
仅可用于在加载文档时执行Javascript代码。
<!DOCTYPE html>
<html>
<head>
<title>JSON</title>
<script type="text/javascript">
// user is the property of obj1
window.onload = function() {
var obj1 = {
user: "John",
age: 26,
country: "United States"
};
document.getElementById("results").innerHTML = obj1.user + "<hr>";
}
</script>
</head>
<body>
<div id="results"></div> <---- Expected to see John HERE
</body>
</html>
另一种方法是将
script
标记(如OP中所述,不带window.onload
)放在<div id="results"></div>
后面,以便在执行JavaScript代码之前加载div。