[英]How can I print out Javascript data into HTML DOM?
我正在嘗試將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
出現錯誤的原因是因為您在head
部分中指定了腳本,因此在創建id="results"
的HTML元素之前執行腳本
與其將腳本導入到head部分中,不如將其導入到結束body標記</body>
<body>
<div id="results"></div> <---- Expected to see John HERE
<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>
</body>
當document.getElementById("results").innerHTML = obj1.user + "<hr>";
時,帶有results
ID的div尚未加載document.getElementById("results").innerHTML = obj1.user + "<hr>";
在Javascript中被稱為。
因此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。
解決這個問題的方法可能不只一種,但是我通過等待窗口加載來解決我的問題:
window.onload = function()
{
// my JSCodeHERE
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.