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