<body>
<script type="text/javascript">
var pare = document.createElement("p");
var textdiv = document.getElementById("name");
textdiv.appendChild(pare);
var text = document.createTextNode("fuck world");
pare.appendChild(text);
</script>
<div id="name"></div>
</body>
这样会出现appendChlid为null的错误,求解

解决方案 »

  1.   

    顺序问题。把js放在div后面去或者放入window.onload中去。
    <body>
    <script type="text/javascript">
    window.onload=function(){
    var pare = document.createElement("p");
    var textdiv = document.getElementById("name");
    textdiv.appendChild(pare);
    var text = document.createTextNode("fuck world");
    pare.appendChild(text);
    }
    </script>
    <div id="name"></div>
    </body>
      

  2.   

    这段代码写在该div前面,会在该div加载前执行,此时不能获取到div对象
    很多种改法:
    1.//放在div中
    <body>
    <div id="name">
    <script type="text/javascript">
    var pare = document.createElement("p");
    var textdiv = document.getElementById("name");
    textdiv.appendChild(pare);
    var text = document.createTextNode("fuck world");
    pare.appendChild(text);
    </script></div>
    </body>
     
    2.//延时执行
    <body>
    <script type="text/javascript">
    setTimeout(function(){
    var pare = document.createElement("p");
    var textdiv = document.getElementById("name");
    textdiv.appendChild(pare);
    var text = document.createTextNode("fuck world");
    pare.appendChild(text);
    },100);
    </script>
    <div id="name"></div>
    </body>3.//在事件中执行
    <body onload="startfun()">
    <script type="text/javascript">
    function startfun(){
    var pare = document.createElement("p");
    var textdiv = document.getElementById("name");
    textdiv.appendChild(pare);
    var text = document.createTextNode("fuck world");
    pare.appendChild(text);
    }
    </script>
    <div id="name"></div>
    </body>