Что такое this.parentElement? - PullRequest
10 голосов
/ 24 мая 2010
pg.myfunc = function(){
    var i = 1, j = 2;
    this.selected = 1;
    xx.newObject = this.parentElement;

...

Что делает xx.newObject = this.parentElement;?

Ответы [ 3 ]

15 голосов
/ 24 мая 2010

Это то же самое, что и this.parentNode: он дает вам узел, который содержит this как childNode.this будет pg, предположительно, каким-то элементом;this.parentNode будет Элементом, который его содержит, или объектом document, если pg является корневым элементом.

parentElement является нестандартным IE расширением .Поскольку IE также поддерживает стандартное свойство parentNode, никогда не следует использовать parentElement.

В качестве альтернативы, возможно, это просто произвольный объект со свойством с именем parentElement, и в этом случае это может быть что угодно.,Нет реального способа узнать из этого кода, но было бы необычно устанавливать произвольные свойства, такие как myfunc на узле Element.

6 голосов
/ 24 мая 2010

Сохраняет ссылку на родительский элемент this. Так, например:

<div id="parent">
  <span id="child">
  </span>
</div>

В этом случае, если this соответствует диапазону child, parentElement будет соответствовать parent div.

Тем не менее, вы всегда должны использовать parentNode вместо parentElement, поскольку parentElement является частной собственностью и (я считаю) работает только с IE. Согласно MSDN :

Не существует публичного стандарта, применимого к этому имуществу.

0 голосов
/ 24 мая 2010

Невозможно узнать без некоторого контекста.Мы не знаем, что такое хх, и не знаем наверняка, что такое «этот» объект.parentElement МОЖЕТ быть свойством для pg, но с другой стороны эта функция может быть вызвана другим способом, например, если где-то она назначена как функция onclick:

someElement.onclick = pg.myfunc;

В этом случае это будет свойство someElement.

Как уже говорили другие, если "this" является элементом DOM, вы должны использовать parentNode, а не parentElement, поскольку последний является нестандартным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...