本帖最后由 webhermit 于 2011-01-12 14:57:34 编辑

解决方案 »

  1.   

    dom的加载是顺序执行
    你第一个:form未加载完毕,整个form的dom树没建立完全。
    第二个:你放在form后面 dom树解析完成了。
      

  2.   

    -------------------------------------------------
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="ActiveX.Default" %>
    这个是asp.net的标记,如果仅仅是测试html的话,去除这段
      

  3.   

    我在3楼给你解释了
    我这个回复是告诉1楼你这个是在IE下不抱错 因为他是IE ONLY~
      

  4.   

    Dom是从上到下顺序解析的,如果你想这样的话,还是把JS代码放到HTML最下面吧!也就是Dom标签全部加载完了,再去执行JS
      

  5.   


    -------------------------------------------------<!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 runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <input type="text" name="test" />    <script type="text/javascript" language="javascript">
            document.getElementsByName('test')[0].value = "a";
        </script>    </form>
    </body>
    </html>
    回楼上的,后来我改成了document.getElementsByName('test')[0].value = "a";这个没有报错,这个是为什么呢?
      

  6.   

    在 onload 中  document.getElementById  来获取对象
      

  7.   


    --------------------
    把这个js放到html最下面也不行
      

  8.   

    这是浏览器的问题,你这样写只能在IE6以下版本中使用
    想要通用一般用document.getElementById(),或者document.getElementsByName,document.getElementsByTagName
      

  9.   

    这个你需要了解ie下对dom树通过name获取对象的运作方式。
    通常这种写法不被推荐。
    最起码要做的事是通过form对象来引用下面的name命名的dom