Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.05.2013, 04:22
Новичок на форуме
Отправить личное сообщение для Slavchic Посмотреть профиль Найти все сообщения от Slavchic
 
Регистрация: 14.05.2013
Сообщений: 3

Как понять, что элемент точно удалён из Dom
Имеется линк на созданный div = document.createElement('div')
После удаления самого объекта из Dom через .removeChild, линк всё также возращает объект и его свойства.

Кто-нибудь может подсказать по каким свойствам можно понять, ведёт линк на реальный объект или удалённый.


<html>
<body></body>
<script>

empty_inner_html = function(obj){while (obj.hasChildNodes()) obj.removeChild(obj.firstChild)}


a = document.createElement('input'); a.value = 123
b = document.createElement('div')
c = document.createElement('div')

b.appendChild(a)
c.appendChild(b)
document.body.appendChild(c)


setTimeout(function(){
	empty_inner_html(document.body)
	console.log(a.value)
},2000)
 

</script>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 14.05.2013, 05:30
Новичок на форуме
Отправить личное сообщение для Slavchic Посмотреть профиль Найти все сообщения от Slavchic
 
Регистрация: 14.05.2013
Сообщений: 3

пока есть идея проверять это такой функцией. Когда элемент существует в доме, то el.parentNode.parentNode.итд. рано или поздно доберётся до document.body. У удалённого элемента проход по el.parentNode никогда нарвётся на document.body

function is_el_real(el){
	var el_p = el.parentNode
	
	while(el_p) {
		if (el_p == document.body) return true
		el_p = el_p.parentNode
	}
	return false
}
Ответить с цитированием
  #3 (permalink)  
Старый 14.05.2013, 06:28
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Slavchic
Кто-нибудь может подсказать по каким свойствам можно понять, ведёт линк на реальный объект или удалённый.
Объект реальный всегда. Он не может быть виртуальным. Он просто может находиться в DOM-модели страницы, и ли не находиться в ней

А проверить это поможет https://developer.mozilla.org/en-US/.../Node.contains
Ответить с цитированием
  #4 (permalink)  
Старый 14.05.2013, 18:12
Новичок на форуме
Отправить личное сообщение для Slavchic Посмотреть профиль Найти все сообщения от Slavchic
 
Регистрация: 14.05.2013
Сообщений: 3

Сообщение от danik.js Посмотреть сообщение
Объект реальный всегда.
А проверить это поможет https://developer.mozilla.org/en-US/.../Node.contains
Неправильно выразился ).

Спасибо
Ответить с цитированием
  #5 (permalink)  
Старый 14.05.2013, 19:14
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от qwerty-клавиатура
 
Регистрация: 12.04.2013
Сообщений: 132

if ( el = document.getElementById(x) ) {
// делаем что-то
}
else {
// элемента с таким id нет
}
Ответить с цитированием
  #6 (permalink)  
Старый 14.05.2013, 19:16
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от qwerty-клавиатура
 
Регистрация: 12.04.2013
Сообщений: 132

впрс прочитал не внимательно
Ответить с цитированием
  #7 (permalink)  
Старый 15.05.2013, 01:49
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

возможно, будет полезно http://learn.javascript.ru/memory-leaks

Сообщение от Slavchic
Имеется линк на созданный div = document.createElement('div')
После удаления самого объекта из Dom через .removeChild, линк всё также возращает объект и его свойства.
пока существуют ссылки, сборщик мусора не сможет удалить объект
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Развитие стандарта HTML Paguo-86PK Элементы интерфейса 104 14.12.2015 21:58
как удалить элемент в DOM? czp Общие вопросы Javascript 11 17.12.2011 20:55
Поюзайте хомячка Nanto Ваши сайты и скрипты 30 06.06.2011 22:16
Как узнать находится ли DOM элемент в области видимости? phgrey Общие вопросы Javascript 4 22.03.2011 19:05
Как передать элемент в функцию после createElement Oleg NT Общие вопросы Javascript 3 23.06.2008 02:11