<html>
<head>
<title>form test </title>
<script type="text/javascript">

var form1 = document.getElementById("form1");
var colorFields = form1.elements["color"];
alert(colorFields.length);
var firstColorField = colorFields[0];
var firstFormField = form1.elements[0];
alert(firstColorField == firstFormField);
</script>
</head>
<body> <form method="post" id="form1">
<ul>
<li><input type="radio" name="color" value="red">Red</li>
<li><input type="radio" name="color" value="green">Green</li>
<li><input type="radio" name="color" value="blue">Blue</li>
</ul>
</form>
</body>
</html>

解决方案 »

  1.   

    <html>
    <head>
    <title>form test </title>
    <script type="text/javascript">
    function init(){
    var form1 = document.getElementById("form1");
    var colorFields = form1.elements["color"];
    alert(colorFields.length);
    var firstColorField = colorFields[0];
    var firstFormField = form1.elements[0];
    alert(firstColorField == firstFormField);
    }
    window.onload=init;
    </script>
    </head>
    <body><form method="post" id="form1">
    <ul>
    <li><input type="radio" name="color" value="red">Red</li>
    <li><input type="radio" name="color" value="green">Green</li>
    <li><input type="radio" name="color" value="blue">Blue</li>
    </ul>
    </form>
    </body>
    </html>
    这样试试  加载是从上而下进行的(一般的说),你的var form1 = document.getElementById("form1");
    时其实form1还没加载到呢  所以找不到对象才对   不止是不是你要的
      

  2.   


    +1,,
    或者你还可以把<script>放到</html>下面,等整个html文档加载完毕后再进行加载js。
      

  3.   

    你页面的html节点都还没有加载完成么,当然会报错了。具体见1L。
      

  4.   

    js是逐行解析执行的,所以是好写在html代码的下面
    所以1L说的是对
      

  5.   

    养成好习惯  window.onload 要写 不然DOM树还没加载完 就开始调用它 怎么可能会有对象