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