Если они действительно есть в dom, то как ты обьяснишь, что у $a после innerHTML пропадает родитель?
console.log($a.eq(0).parent().prop("tagName")) |
По ссылке, видимо вопрос этого касается или я не понимаю о чем спрашивают.
|
Цитата:
|
Я открыл и получаю undefined (google chrome 52.0.2743.82 (64-bit))
И это правильное поведение. По ссылке, которую ты мне дал "Добавление innerHTML+= осуществляет перезапись" и именно потому что перезапись, потому что на самом деле элементы из dom удаляются, но в коллекции на них остается ссылка, поэтому они остаются в памяти. И именно поэтому у него меняется родитель.. Либо ты не понимаешь этого, либо ты не понимаешь, что я хочу. В любом случае спасибо :с * Сообщения дублировались, потому что я не заметил, как мы перешли на вторую страницу. |
Цитата:
Вы получили коллекцию, затем модифицировали DOM и хотите чтобы при этом старые ссылки работали как надо? $("#root").get(0).innerHTML += "<div class='b'>b-dynamic</div>"; var $b = $("div.b"), $a = $(".a") console.log($a.eq(0).parent().prop("tagName")) Все на месте? |
В этом случае да. В моем случае добавление перед получением коллекций сложноосуществимо...
Поэтому я отказался в конкретном случае от innerHTML. За ссылку спасибо :с За внимание тоже. Цитата:
Про исчезновение родителя я говорил в таком коде: $a = $(".a") $root[0].innerHTML += "1"; console.log($a.eq(0).parent().prop("tagName")) |
Цитата:
Просто достаточно знать это. Например, можно root делегировать обработчик щелчков по дочерним DIV. Затем добавлять в него новые дочерние DIV, как при этом они будут добавляться не важно, все будут работать и будет доступно. Но то что вы пытаетесь делать уже не получится. |
С делегирование все дочтаточно очевидно, потому что мы вешаем обработчик на родителя а внутри обработчика проверяем event.target. Нам все равно, есть ли обьекты, когда они были добавлены и т.д
|
Цитата:
|
insertAdjacentHTML не пробовали :cray:
|
Часовой пояс GMT +3, время: 06:44. |