我正在尝试将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。

07-28 02:28
查看更多