Обход DOM до окна? - PullRequest
       22

Обход DOM до окна?

1 голос
/ 02 июля 2011

Со следующим битом кода -

var myEl = document.getElementById('myElement');
myEl.ownerDocument.defaultView;

означает, что попадание в исходное окно через ownerDocument.defaultView означает, что я пересекаю DOM от элемента myEl до документа, а затем до окна

Ответы [ 3 ]

2 голосов
/ 02 июля 2011

Это не совсем прохождение само по себе.

Каждый объект DOM имеет свойство ownerDocument. Это документ, с которым связан узел, если таковой имеется.

Каждый объект документа имеет свойство defaultView (при условии, что ваш браузер поддерживает его - не верно в IE <9). Это объект <code>window, в котором отображается документ, если таковой имеется.

Так что на самом деле это просто чтение нескольких свойств из объектов, а не обход.

0 голосов
/ 02 июля 2011

Я думаю, что обход будет как:

var theParentNode = document.getElementById('myElement');

while(theParentNode = theParentNode.parentNode) {
    // do something
}
0 голосов
/ 02 июля 2011

Я бы не сказал, что это обход DOM .. больше похоже на сокращение дерева DOM и переход прямо к окну.

Обход может быть чем-то вроде этого:

var myEl = document.getElementById('#myElement');
while(myEl.parentNode)
{
    console.log("parentNode = " + myEl.parentNode);
    myEl = myEl.parentNode;
}
console.log("root parentNode = " + myEl);
...