Root Div元素类型错误

时间:2015-01-08 04:35:55

标签: javascript jquery html dom

我正在尝试找到根div元素,这就是我在做的方式。

   var parentDoc = window;
    while (parentDoc !== parentDoc.parent) {
        parentDoc = parentDoc.parent;
    }
    parentDoc = parentDoc.document;
    var divContent = parentDoc.getElementsByClassName("content")[0];

它运行正常,但是当我将浏览器屏幕调整得太小时,我会收到错误。

Uncaught TypeError: Cannot read property 'parent' of null

我该如何解决这个问题?或者有没有更好的方法来使用jquery或javascript做我正在做的事情?

由于

2 个答案:

答案 0 :(得分:0)

我相信你要找的是window.top,它引用了层次结构中最顶层的窗口。您可以在here.上找到更多相关信息。此外,this question可能有助于消除对此与window.parent之间差异的疑虑。

答案 1 :(得分:0)

不清楚你想做什么,但是使用jQuery你可以尝试使用closest函数:

 var $content = $(<selector>).closest('.content');
 var content  = $content[0];

来自jQuery网站:

  

对于集合中的每个元素,通过测试元素本身并遍历DOM树中的祖先来获取与选择器匹配的第一个元素。

您可以通过检查parentDoc.parent var:

的无效来避免您所描述的错误
while (parentDoc !== parentDoc.parent) {
    if (parentDoc.parent == null) {
        break;
    }
    parentDoc = parentDoc.parent;
}