2012-07-13 55 views
2

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

<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> 

回答

1

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

我测试了它here

希望这有助于

编辑:

我相信azhrei有它的权利,这是没有这么多的onload事件不会触发,那就是有一个你的onload调用的语法问题。

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

在头部,如果你写:

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

它的工作原理一样好。它也消除了那里的许多绒毛。我希望有所帮助。

+0

完美。我不知道只是在调用这个功能。半新的javascript。 – 2012-07-13 01:29:27

+0

这帮助我在这里找到另一个bug ......所以,你不需要明确地重新加载......只需将你的window.onload函数设置为一个函数,而不是一个字符串。 :-)我已经用这个更新了我的答案。 – azhrei 2012-07-13 01:33:08

+0

我刚刚做了一个编辑,我认为这听起来像是azhrei所说的,也提供了比我昨天的解决方案更好的整体风格。我希望这有助于更多。 – 2012-07-13 16:40:05

4

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

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

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

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

W应该是: window.onload=load;

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

+0

是啊先试过,没有成功。所以即使用引号也行不通。 – 2012-07-13 01:19:46

+0

我已经更新了答案 - 再试一次。 – azhrei 2012-07-13 01:33:32