簡體   English   中英

如何將Javascript數據打印到HTML DOM中?

[英]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

這是我的JSFiddle

出現錯誤的原因是因為您在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM