<input type=button value=ok name=b1 onclick="if(document.all.b1)alert('该控件存在')">

解决方案 »

  1.   

    <SCRIPT>
    function fnGetId(){
       // Returns the first DIV element in the collection.
       var oVDiv=document.getElementById("oDiv");
       alert(oVDiv==null);
    }
    </SCRIPT>
    <DIV ID="oDiv">Div #1</DIV>
    <DIV ID="oDiv">Div #2</DIV>
    <DIV ID="oDiv">Div #3</DIV>
    <INPUT TYPE="button" VALUE="Get Names" onclick="fnGetId()">
      

  2.   

    <SCRIPT>
    function fnGetNames(){
       // Returns a collection with 2 INPUT type=text elements.
       var aInput=document.getElementsByName("firstName");
       if(aInput==null) alert("Object not exist");
       else alert("Object Exists");}
    </SCRIPT>
    <INPUT TYPE="text" NAME="firstName">
    <INPUT TYPE="text" NAME="firstName">
    <INPUT TYPE="button" VALUE="Get Names" onclick="fnGetNames()">
      

  3.   

    <SCRIPT>
    function fnGetId(){
       // Returns the first DIV element in the collection.
       var oVDiv=document.getElementById("oDiv");
       if(oVDiv==null) alert("Object not exist");
       else alert("Object Exists");
    }
    </SCRIPT>
    <DIV ID="oDiv">Div #1</DIV>
    <DIV ID="oDiv">Div #2</DIV>
    <DIV ID="oDiv">Div #3</DIV>
    <INPUT TYPE="button" VALUE="Get Names" onclick="fnGetId()">
      

  4.   

    正确的做法是:if(typeof(o)=="undefined"){...}
      

  5.   

    我以前也曾经遇到过这个问题,研究了半天最后发现getElementById才是正确的.
      

  6.   

    补充:
    很多方法想起来能够行得通,比如上面的typeof,而实际上仔细想一下过程就会发现有问题,因为脚本的执行包含有两个方面的内容:
    1.IE的DOM
    2.脚本自身
    typeof(o)首先需要IE通过DOM取出o,然后送给脚本进行类型判断,如果事先并不知道o是否存在,则在第一步IE就会报错,说找不到对象o,类似的错误还会发生在
    if(document.all.b1)alert('该控件存在')
    这类语句上。而getElementById是DOM提供的方法,它的对象ID是以字符串方式存在的,因此可以正确执行.
      

  7.   

    如果o未定义。访问o是错误的,访问typeof(o)则返回"undefined"。这是唯一正确的方法。
      

  8.   

    赞同用 typeof()if ( typeof(o) != 'undefined' )
    ...
    if ( typeof(o) == 'object' )
    ...
      

  9.   

    如果o是JS的变量,当然可以这么做,但是这里显然要判断的不是变量是否存在,或者变量是否已经赋值,而是要判断一个DOM对象是否存在,这里的o在实际代码中类似于typeof(document.body.objectid).如果真像这样写肯定就是错的.
      

  10.   

    DOM对象也是javascript对象!对于这类对象写法类似:if(typeof(document.all.objectid)=="undefined"){...}。另外,如果只知道对象名称(字符串),可以这样写:if("objectid" in document.all){...}