2

所以问题是,为什么这不会在加载时附加 div?我在这个问题上摸不着头脑。没有错误...只是没有加载。

<head>
    <script type="text/javascript">
        function load() {
            var divTag0 = document.createElement("div");
            divTag0.className = "newsBlock";
            divTag0.innerHTML = " Try this..";
            document.getElementById("newsLeft").appendChild(divTag0);

            var divTag1 = document.createElement("div");
            divTag1.className = "newsBlock";
            divTag1.innerHTML = " Blah..";
            document.getElementById("newsRight").appendChild(divTag1);

            var divTag2 = document.createElement("div");
            divTag2.className = "newsBlock";
            divTag2.innerHTML = " And this ..";
            document.getElementById("newsLeft").appendChild(divTag2);    
        }
    </script> 
</head>
<body>
    <p> Something filler </p>
    <div id="newsLeft">  
    </div>
    <div id="newsRight">     
    </div>
    <script type="text/javascript">
        window.onload="load()";
    </script>
</body>
4

2 回答 2

4

您应该为getElementById提供一个字符串...

以便: document.getElementById(newsLeft).appendChild(divTag0);

应该: document.getElementById("newsLeft").appendChild(divTag0);

但主要问题是: window.onload="load()";

应该是: window.onload=load;

感谢 jvillars 的小提琴,它帮助我注意到了这一点。

于 2012-07-13T00:54:19.477 回答
1

如果 azhrei 的回答不起作用,我唯一能想到的是在加载后调用 onload 可能不会触发,您可以通过简单地调用 load(); 从示例中更改此设置;

我在这里测试过

希望这可以帮助

编辑:

我相信 azhrei 有它的权利,与其说是 onload 没有触发,不如说是你的 onload 调用存在语法问题。

但是通过删除第二个 JS 调用,这段代码也可以在更好的风格(更易读/更容易理解)方面得到改进。

如果你写在标题中:

window.onload = function() { 
    //everything inside your load() function goes here
} 

它也同样有效。它还去除了很多在那里的绒毛。我希望这会有所帮助。

于 2012-07-13T01:19:32.950 回答