Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   как получить доступ к найденному элементу? (https://javascript.ru/forum/misc/30650-kak-poluchit-dostup-k-najjdennomu-ehlementu.html)

Aetae 11.08.2012 11:24

Еслиб он не работал яб его не предлагал. Но это пиздец. Если вы не видите, что это пиздец, то пиздец - это также и уровень вашего понимания языка. Какие-то детальные объяснения тут не имеют смысла.

bes 11.08.2012 11:37

Цитата:

Сообщение от Aetae
Еслиб он не работал яб его не предлагал. Но это пиздец. Если вы не видите, что это пиздец, то пиздец - это также и уровень вашего понимания языка. Какие-то детальные объяснения тут не имеют смысла.

Ну для того здесь и находимся, чтобы понять и допонять (я и тот, кто преследует ту же цель), раз у тебя такой высокий уровень понимания языка, не поленись, доступно объясни нам глупеньким, что к чему, местами в официальной документации подтверди, а то твои эмоции так и зависнут в воздухе без особой пользы.

Aetae 11.08.2012 11:51

Цитата:

Какие-то детальные объяснения тут не имеют смысла.
dixi

melky 11.08.2012 12:00

Цитата:

Сообщение от 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>

vadim5june 11.08.2012 12:07

Цитата:

Сообщение от bes (Сообщение 196580)
Или из-за этого
http://javascript.ru/String/replace
я предполагаю сборщик справится, а метод работает

если пример слегка переделать навесив событие на элемент то событие пропадает после 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>

bes 11.08.2012 12:10

Цитата:

Сообщение от Aetae
dixi

ну хоть какая-то польза (http://ru.wikipedia.org/wiki/Dixi_(%...%D 0%B8%D0%B5)
я всё понял: в этих объяснениях просто нет смысла :D

bes 11.08.2012 12:12

melky, сейчас посмотрю твой пример

vadim5june, в недавней теме это вместе обсуждали, поэтому я написал
Цитата:

Сообщение от bes
Если потеря обработчиков не принципиальна (или их вообще нет)


vadim5june 11.08.2012 12:13

Цитата:

Сообщение от bes (Сообщение 196601)
vadim5june, в недавней теме это вместе обсуждали, поэтому я написал

да когда обсуждали document.body.innerHTML+
здесь аналогично

melky 11.08.2012 12:22

Цитата:

Сообщение от bes
melky, сейчас посмотрю твой пример

там только обьяснение, почему низя так делать, и пример, доказывающий написанное. почти нечего смотреть. жду ответа на мой ответ :)

Цитата:

Сообщение от bes
vadim5june, в недавней теме это вместе обсуждали, поэтому я написал

>< ёмаё, а почему они теряются, это ничего плохого?

т.е. если у Вас украдут телефон, разобьют его, Вы будете жалеть о том, что его разбили, а не о том, что его украли ?!

bes 11.08.2012 12:32

melky, всё понял, смысл такой же как и у vadim5june, innerHTML переписывается новыми элементами, а до этого полученные ссылки указывают на другие элементы (но пример хорош тем, что ещё и восстанавливает старый элемент).

Тем не менее, если есть понимание что к чему, не вижу ничего плохого пользоваться такими приёмами, что категорически запрещал Aetae.


Часовой пояс GMT +3, время: 18:56.