检测元素是否因父隐藏属性而对用户隐藏

时间:2014-04-17 18:49:25

标签: javascript html dom

在纯javascript / DOM中有没有办法知道元素是否被隐藏?就像我有这样的事情:

    <div id="creator" hiddden="hidden">
      <dl>
        <dt> <label for="creator">Creator:</label> </dt>
        <dd>
           <input type="text" name="creator"/>
        </dd>
      </dl>
    </div>

因此,仅从获取表单元素,是否可以找到它是否隐藏,因为祖先具有隐藏属性?

非常感谢

2 个答案:

答案 0 :(得分:1)

了解jQuery does it

的方式
jQuery.expr.filters.hidden = function( elem ) {
    // Support: Opera <= 12.12
    // Opera reports offsetWidths and offsetHeights less than zero on some elements
    return elem.offsetWidth <= 0 && elem.offsetHeight <= 0;
};

演示:http://jsfiddle.net/xJ2Dr/

答案 1 :(得分:-1)

Element.offsetParent==null

  

然后隐藏元素