Что такое this.parentElement?

pg.myfunc = function(){
    var i = 1, j = 2;
    this.selected = 1;
    xx.newObject = this.parentElement;

...

Что xx.newObject = this.parentElement; выполнение?

10
задан pimvdb 14 September 2011 в 20:26
поделиться

3 ответа

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

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

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

15
ответ дан 3 December 2019 в 18:32
поделиться

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

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

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

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

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

6
ответ дан 3 December 2019 в 18:32
поделиться

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

someElement.onclick = pg.myfunc;

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

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

0
ответ дан 3 December 2019 в 18:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: