比如,估计页面内有个<div id="mydiv"></div>,然后对这个DIV进行一些操作。但是如果页面内不存在这个DIV,那么document.getElementById(...)就会出错。现在为了让程序兼容性强一点,需要多一个判断语句,判断是否存在这个对象。我想
if(对象存在)
{
   对象=document.getElementById(...)
}如何判断呢?
假设不是div,而是表单myform里的一个文本字段mytext,怎么判断呢?有几种方法?

解决方案 »

  1.   


    <script type="text/javascript">
    <!--
    if(document.getElementById("aa")){
    // dosomething
    alert("exist")
    }else{
    alert("noexist")
    }
    //-->
    </script>
      

  2.   

    可直接if(对象)var a = document.getElementById("xxx");
    if(a){alert("存在")}
    a = document.forms[0].xxx;
    if(a){alert("存在")}
      

  3.   

    只是这句 var v1 = document.getElementById('xxxxx');
     
    不会出错的,如果无此ID的对象,v1就是NULL,你可以alert出来看看就知道了要继续操作可以这样写
    if(!v1){
        v1.className = ....
    }
      

  4.   

    但是,我用alert弹出来的信息室undefined啊,为什么用在if() 里可以当做是true?
      

  5.   

    也可以
    if(typeof xxx == "undefined") alert("不存在")
      

  6.   

    可以像这样写:
    function Test(id){
        var div=document.getElementById(id)
        if(div==null) return; //如果不存在,直接退出函数     //继续你的代码 
         ....
    }
      

  7.   

    你alert出来是undefined可能是浏览器不同的问题吧 
    js里面 会有类型自动转换的 以下这些 1.null 
    2.""
    3.undefined
    4.false
    5.0
    6.NaN用在if里面 都是false  参考javaScript - The Definitive Guide 5th Edition 3.12
      

  8.   

    document.getElementById("id")
    这个是根据 id来找的 ,对象不管是什么 ,div也好 ,文本也好 ,连接都可以 ,只要id设置了 就能找到 ,否则就undefined
      

  9.   

    document.getElementByTag("ID");这样比较取巧一些,var range=document.getElementByTage();
    var myrange=range.length;
    for(...)
    {
    ...
    }
    可以实现对同一类元素进行操作,这样省事儿一点!
      

  10.   

    undefine这个值主要用于以下两种情况
    var temp1;
    alert(temp1);//temp1只定义未赋值,输出undefine
    alert(temp2);//temp2既未定义也未赋值,输出undefinegetElementById()得到了存在的DIV对象,返回的值为null,所以最好以判断返回值是否为undfine来确认指定的DIV是否存在。