html代码是从上到下边加载边执行的。
你执行var b=document.getElementById('a');的时候<form id="a" name="a">还没有加载完成

解决方案 »

  1.   

    但是我把Script语句写在HTML里是可以读出来的。。
    不知道为什么
      

  2.   

    但是我把Script语句写在HTML里是可以读出来的。。
    不知道为什么我在后面写了一个按钮,通过按钮控制事件确实可以读出getElementById()的值,好像确实是因为没有加载的原因,,
    但是为什么Script语句写在HTML里是可以读出来的。。
      

  3.   

    getElementById 无法找到因为运行时document未加载
    getElementsByName 能找到元素因为该方法返回NodeList 该数组会随dom变化
      

  4.   

    就你现在这段代码如果script标记放到form结束标记和body之间那么就会弹出11。如果放到form开始标记之前就是弹出22。第一种情况就是获取一个Dom对象,另一种就是获取不到对象会报错的。其实最大问题就是你不该在下面直接test()调用。这样函数就去意义了。应该用submit事件触发它。
      

  5.   

    但是我把Script语句写在HTML里是可以读出来的。。
    不知道为什么
    看看下面的例子<script type="text/javascript">
    //在<div>之前的代码获取不到
    alert(document.getElementById("a"));
    </script><div id="a"></div><script type="text/javascript">
    //在<div>之后的代码可以获取到
    alert(document.getElementById("a"));
    </script>