<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title></head>
<body>
<script type="text/javascript">
    function create(elementId){   
        var name=document.getElementById('main');
        document.write(name);
        var s=document.createTextNode('sadferwetwpo');
        name.appendChild(s);   
    }
    create("main");
</script>
<div id="main">你好啊</div>
</body>
</html>
为什么我得到的总是空值  document.write(name);这一句得到总是为空值?????

解决方案 »

  1.   

    你的代码执行顺序是
    1、声明create方法
    2、调用create方法
    ……
    3、加载<div id="main">
    在你调用create时,div[id='main']还没加载,所以找不到解决方法:

    create("main");
    这句替换成如下语句:
    window.onload = function(){ create("main"); };
      

  2.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title></head>
    <body>
    <div id="main">你好啊</div>
    <script type="text/javascript">
      function create(elementId){  
      var name=document.getElementById('main');
      document.write(name);
      var s=document.createTextNode('sadferwetwpo');
      name.appendChild(s);  
      }
      create("main");
    </script>
    </body>
    </html>
      

  3.   

    这样写:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    <script type="text/javascript">
      function create(elementId){   
      var name=document.getElementById('main');
      document.write(name);
      var s=document.createTextNode('sadferwetwpo');
      name.appendChild(s);   
      }
    </script>
    </head>
    <body>
    <div id="main">你好啊</div>
    <script>create("main")</scirpt>
    </body>
    </html>
      

  4.   

    楼主将代码改为以下格式即可:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title></head>
    <body>
    <div id="main">你好啊</div>
    <script type="text/javascript">
      function create(elementId){   
      var name=document.getElementById('main');
      document.write(name);
      var s=document.createTextNode('sadferwetwpo');
      name.appendChild(s);   
      }
      create("main");
    </script>
    </body>
    </html>
    或者
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    <script type="text/javascript">
      function create(elementId){   
         var name=document.getElementById('main');
         document.write(name);
         var s=document.createTextNode('sadferwetwpo');
         name.appendChild(s);   
      }
      window.onload=create;
    </script>
    </head>
    <body>
    <div id="main">你好啊</div>
    </body>
    </html>
      

  5.   

    一般function都会写在外链接里。如果放在页面中最好能放到最好。这根页面的加载速度有关系
      

  6.   

    一句话总结 就是 函数不要直接执行要绑定在onload事件上