2015-01-08 2 views
1

Я пытаюсь найти элемент корневого div, и это то, как я это делаю.Root 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?

Благодаря

ответ

0

Это не ясно, что вы хотите сделать, но с JQuery вы можете попробовать использовать closest функцию:

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

с сайта JQuery:

Для каждого элемента в наборе, получаем первый элемент, который соответствует селектору, тестируя сам элемент и пересекая его предков в дереве DOM.

Вы можете избежать ошибок вы описали, проверив недействительность parentDoc.parent вара:

while (parentDoc !== parentDoc.parent) { 
    if (parentDoc.parent == null) { 
     break; 
    } 
    parentDoc = parentDoc.parent; 
} 
+0

я пытаюсь получить корневой DIV затем найти ребенок div – user3754674

+0

@ user3754674: Я не думаю, что вы находите корень div вообще. То, что вы пытаетесь установить, - это корневой документ/фрейм, а не '

' (иначе я не понял ваш вопрос, и код, который вы опубликовали, не имеет никакого смысла). – JCOC611

+0

корень div чего? ваш документ? некоторый контейнерный тег? Познакомьтесь с ближайшей функцией jQuery. Это может помочь вам. –

0

Я считаю, что вы ищете window.top, который имеет ссылку на самое верхнее окно в иерархии. Вы можете найти более подробную информацию об этом here. Кроме того, this question может помочь устранить некоторые путаницы относительно различий между этим и window.parent.

+0

я пытаюсь получить корневой DIV затем найти ребенка DIV – user3754674

Смежные вопросы