【问题标题】:appendChild on loadappendChild 加载
【发布时间】:2012-07-13 00:49:26
【问题描述】:

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

【问题讨论】:

    标签: javascript onload appendchild


    【解决方案1】:

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

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

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

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

    应该是: window.onload=load;

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

    【讨论】:

    • 是的,之前尝试过,但没有成功。所以即使有引号也行不通。
    【解决方案2】:

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

    我测试过here

    希望对你有帮助

    编辑:

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

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

    如果你写在标题中:

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

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

    【讨论】:

    • 完美。我不知道只是调用这个函数。半新手到 javascript。
    • 这帮助我在这里找到了另一个错误......所以,你不需要明确地重新加载......只需将你的 window.onload 函数设置为一个函数,而不是一个字符串。 :-) 我已经用这个更新了我的答案。
    • 我刚刚做了一个编辑,我认为这与 azhrei 所说的很相似,并且提供了比我昨天的解决方案更好的整体风格。我希望这会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 2012-05-06
    • 2011-02-23
    • 1970-01-01
    • 1970-01-01
    • 2015-10-29
    相关资源
    最近更新 更多