例:
...//在input前面有各种不同的情况使下面的input处于隐藏状态(也就是没有显示在页面上)
<input type="text" id="userid">
...
问:用JS,有什么办法(或变通办法)得知id="userid"的控件是否处于隐藏状态(页面上看不到,HTML中能看到)?

解决方案 »

  1.   

    纯js 就obj.style.display=="none",jquery 就 $('#userid').is('hidden') or $('#userid').is(":visible")
      

  2.   

    这个我知道。我的意思是:<input type="text" id="userid"> 如何得之该控件是否显示在界面上?(在该控件的前面有可能做了N多的逻辑控制,导致该控件没有显示在界面上)
      

  3.   

     var input = document.getElementById("input").style.display; //获得显示属性
     alert(input);
      

  4.   

    那你用var input = document.getElementById("input")得到的是空那不就是木有加载在页面上么
      

  5.   

    <input type="text" id="userid">
    整个页面中压根没有对它设置style和display,只是因为它的父节点(具体多少级不知道设置了整个节点隐藏)。
      

  6.   

    本身是加载到了页面上(HTML代码中有该控件),只是在该控件的前面N级设置了整个隐藏。
      

  7.   

    如果是这样,父类隐藏了,你这样input = document.getElementById("userid")获得是"",如果是页面没有加载,也就是页面没有id为userid的html标签那直接获得的是null,这样就可以判断了呗
      

  8.   

    用document.getElementById("userid")获得的不可能是""嘛,原因很简单,控件的HTML代码都存在于客户端了,只是因父操作导致该控件隐藏了。有其它办法么?
      

  9.   

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <title>无标题页</title>
        <script language="javascript" type="text/javascript">
       function checkDisplay(objid){
    var obj;
    var obje;
    if(objid!=""&&objid!=null){
    obj=document.getElementById(objid);
     
    if(obj.style.display=='none'){
    alert('该控件是隐藏的');
    return;
    }else{

    obje=obj.parentElement;

    checkDisplay(obje.id);

    }

    }
       }    </script>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>
    <body onLoad="checkDisplay('btnNew');">
    <div id="div1" style="display:block">
    <div id="div2" style="display:block">
    <div id="div3">
    <input type="button" id="btnNew" value="test" onclick="checkDisplay('btnNew');"/></div>
    </div>
    </div>
    </body>
    </html>
    是这个意思么
      

  10.   

    自己手动改下那三个层的DISPLAY 试试效果对不对
      

  11.   

    那这样得到的不是null不就证明加载到页面了么?只是隐藏了
      

  12.   

    除了采用递归方法去父节点的style.display来确认出该节点是否处于隐藏状态,还有其它办法吗?若页面中的隐藏节点非常多,用这种方法会很慢的,而且该程序也不够健壮。心想:要是能通过该节点本身能确认出是否处于隐藏状态就比较好?(或者变通方法)