Что это за элемент?
pg.myfunc = function(){
var i = 1, j = 2;
this.selected = 1;
xx.newObject = this.parentElement;
...
Что делает xx.newObject = this.parentElement;
?
Ответы
Ответ 1
То же, что и this.parentNode
: он предоставляет node, который содержит this
как childNode. this
будет pg
, предположительно элементом какого-либо типа; this.parentNode
будет Элемент, который содержит его, или объект document
, если pg
является корневым элементом.
parentElement
является нестандартным расширением IE. Поскольку IE также поддерживает стандартное свойство parentNode
, parentElement
никогда не должен использоваться.
В качестве альтернативы, возможно, это просто произвольный объект с свойством, называемым parentElement
, и в этом случае это может быть что угодно. Нет никакого реального способа сказать из этого кода, но было бы необычно устанавливать произвольные свойства, такие как myfunc
для элемента node.
Ответ 2
Сохраняет ссылку на родительский элемент this
. Так, например:
<div id="parent">
<span id="child">
</span>
</div>
В этом случае, если this
соответствует диапазону child
, parentElement
будет соответствовать parent
div.
Тем не менее, вы всегда должны использовать parentNode
вместо parentElement
, поскольку parentElement
является собственностью и (я считаю) работает только с IE. Согласно MSDN:
Нет общедоступного стандарта, который применяется к этому свойству.
Ответ 3
Невозможно знать без какого-либо контекста. Мы не знаем, что такое xx, и точно не знаем, что это за объект "this". parentElement МОЖЕТ быть свойством для pg, но затем эта функция может быть вызвана по-другому, например, если где-то она назначена как функция onclick:
someElement.onclick = pg.myfunc;
В этом случае это будет свойство некоторого элемента.
Как говорили другие, если "this" является элементом DOM, вы должны использовать parentNode not parentElement, поскольку последний является нестандартным.