Изменение ссылки на элемент DOM на нулевую ссылку при удалении из DOM

Если я использую document.getElementById для сохранения элемента DOM в переменной, а затем удаляю элемент из DOM с помощью метода removeChild, объект, хранящийся в переменной, не обновляется до нулевой ссылки. Например:

<div id="a">

</div>

<script>

  var a = document.getElementById('a');

  alert(a); // Alerts "[object HTMLDivElement]".

  a.parentNode.removeChild(a);

  alert(a); // Still alerts "[object HTMLDivElement]".

</script>

Есть ли способ сделать ссылку на элемент DOM, хранящуюся в переменной a, более «живой» в том смысле, что она могла бы определять, когда элемент удаляется из DOM, и, таким образом, обновляться до null или что-то еще?

Заранее спасибо.


person HartleySan    schedule 27.07.2013    source источник
comment
Нет, нет, так оно и должно работать.   -  person adeneo    schedule 27.07.2013


Ответы (1)


Вы не можете, потому что вы сохраняете в переменной, просто вызовите var a = document.getElementById('a') когда вам нужна проверка.

var a = document.getElementById('a');

предупреждение (а); // Оповещения [объект HTMLDivElement].

a.parentNode.removeChild(a);

а = документ.getElementById('a');

предупреждение (а); // неопределенный.

person Thanh Son Nguyen    schedule 27.07.2013
comment
Спасибо за ваш отзыв. По какой-то причине я думал, что объект элемента DOM, хранящийся в переменной, должен был быть живым и соответственно изменяться. Хотя хорошо, что нет. Это просто означает, что я должен вставить дополнительную проверку в свой код, чтобы убедиться, что элемент DOM действительно действителен, прежде чем использовать его. Спасибо. - person HartleySan; 27.07.2013