Когда я динамически создать элемент с помощью JQuerys:Ссылка HTML элементы JS объекты
$("<div>",{id : "list"}).html("hello").appendTo("body");
и создать объект JS с помощью:
var obj = {el : document.querySelector("#list") }
консоль возвращает следующее при печати obj.el
, как ожидалось:
<div id="list">hello</div>
Теперь я могу установить контент, используя obj.el.innerHTML = "foo";
После удаления элемента с помощью:
$("#list").remove();
Элемент остается в объекте OBJ созданных ранее. Печать obj.el
все еще возвращает: <div id="list">hello</div>
Прежде всего, почему это так? Есть ли способ сохранить предпочтение элементу без сохранения сложного вложенного селектора CSS, который замедлит работу?
Вы удаляете из DOM, а не объект. Вам все равно нужно удалить (удалить) объект из объекта 'window', используя' delete obj' –
Консоль может использовать кеш, чтобы показать удаленный элемент. Чтобы убедиться, что она удалена, попробуйте снова обратиться к элементу. Это должно привести к определенной ошибке. – jeff
@jeff Повторное использование элемента не вызывает ошибки. Консоль Chromes позволяет без проблем изменять содержимое элементов. Затем элемент можно выводить с помощью нового содержимого с помощью консоли ... Я надеялся на что-то вроде typeof (obj.el) == «undefined» после удаления элемента из DOM. – tlaloc