11.08.2012, 11:24
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,585
|
|
Еслиб он не работал яб его не предлагал. Но это пиздец. Если вы не видите, что это пиздец, то пиздец - это также и уровень вашего понимания языка. Какие-то детальные объяснения тут не имеют смысла.
__________________
29375, 35
Последний раз редактировалось Aetae, 11.08.2012 в 11:51.
|
|
11.08.2012, 11:37
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от Aetae
|
Еслиб он не работал яб его не предлагал. Но это пиздец. Если вы не видите, что это пиздец, то пиздец - это также и уровень вашего понимания языка. Какие-то детальные объяснения тут не имеют смысла.
|
Ну для того здесь и находимся, чтобы понять и допонять (я и тот, кто преследует ту же цель), раз у тебя такой высокий уровень понимания языка, не поленись, доступно объясни нам глупеньким, что к чему, местами в официальной документации подтверди, а то твои эмоции так и зависнут в воздухе без особой пользы.
|
|
11.08.2012, 11:51
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,585
|
|
Цитата:
|
Какие-то детальные объяснения тут не имеют смысла.
|
dixi
__________________
29375, 35
|
|
11.08.2012, 12:00
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от bes
|
В чём причина?
|
все предыдущие дочерние элементы удаляются нафиг из дерева, и их место занимают те, что получились в итоге.
(цвет должен быть зелёным, по идее, но хрен там, т.к. то, что находится в el, уже не прикреплено ни к чему - через 500мс вставляется старый элемент на страницу)
<body>
<div id="a">FOO</div>
</body>
<script>
var el = document.getElementById("a");
el.style.color = "red";
document.body.innerHTML = document.body.innerHTML.replace("FOO", "BAR"); // пуля в ноге
el.style.color = "green";
setTimeout(function () {
document.body.appendChild(el);
}, 500);
</script>
|
|
11.08.2012, 12:07
|
|
Студент
|
|
Регистрация: 30.04.2012
Сообщений: 1,113
|
|
если пример слегка переделать навесив событие на элемент то событие пропадает после replace( при втором клике)
<span>click</span>
<script>
document.getElementsByTagName('span')[0].onclick = function () {document.body.innerHTML = document.body.innerHTML.replace("click",'<b>click</b>');
alert(document.body.innerHTML);
}
</script>
|
|
11.08.2012, 12:12
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
melky, сейчас посмотрю твой пример
vadim5june, в недавней теме это вместе обсуждали, поэтому я написал
Сообщение от bes
|
Если потеря обработчиков не принципиальна (или их вообще нет)
|
|
|
11.08.2012, 12:13
|
|
Студент
|
|
Регистрация: 30.04.2012
Сообщений: 1,113
|
|
Сообщение от bes
|
vadim5june, в недавней теме это вместе обсуждали, поэтому я написал
|
да когда обсуждали document.body.innerHTML+
здесь аналогично
Последний раз редактировалось vadim5june, 11.08.2012 в 12:16.
|
|
11.08.2012, 12:22
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от bes
|
melky, сейчас посмотрю твой пример
|
там только обьяснение, почему низя так делать, и пример, доказывающий написанное. почти нечего смотреть. жду ответа на мой ответ
Сообщение от bes
|
vadim5june, в недавней теме это вместе обсуждали, поэтому я написал
|
>< ёмаё, а почему они теряются, это ничего плохого?
т.е. если у Вас украдут телефон, разобьют его, Вы будете жалеть о том, что его разбили, а не о том, что его украли ?!
|
|
11.08.2012, 12:32
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
melky, всё понял, смысл такой же как и у vadim5june, innerHTML переписывается новыми элементами, а до этого полученные ссылки указывают на другие элементы (но пример хорош тем, что ещё и восстанавливает старый элемент).
Тем не менее, если есть понимание что к чему, не вижу ничего плохого пользоваться такими приёмами, что категорически запрещал Aetae.
|
|
|
|