appendChild加载

时间:2012-07-13 00:49:27

标签: javascript onload appendchild

所以问题是,为什么这不会加载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>

2 个答案:

答案 0 :(得分:4)

你应该提供一个字符串getElementById ...

这样: document.getElementById(newsLeft).appendChild(divTag0);

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

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

应该是: window.onload=load;

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

答案 1 :(得分:1)

如果azhrei的答案不起作用,我唯一能想到的就是在加载后调用onload可能不会触发,你可以通过简单地调用load()来改变你的例子;

我测试了它here

希望这有帮助

编辑:

我相信azhrei拥有它的权利,并不是因为onload没有触发,而是你的onload调用存在语法问题。

但是通过删除第二个JS调用,这个代码也可以通过更好的样式(更易读/更容易理解)来改进。

如果你写的话在标题中:

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

它的效果也一样。它也消除了很多那种脆弱的绒毛。我希望有所帮助。