Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Скопировать HTML код с одного id в другой (https://javascript.ru/forum/misc/34487-skopirovat-html-kod-s-odnogo-id-v-drugojj.html)

lamer 07.01.2013 21:32

Цитата:

Сообщение от monolithed (Сообщение 225771)
Deff,
Я имею ввиду что должно быть так:

<div id="code">
  <div>
    <div>foo</div>
  </div>
</div>
<div id="copy"></div>

<script>
var code = document.getElementById('code');
var copy = document.getElementById('copy')

Array.prototype.forEach.call(code.childNodes, function(node) { 
  copy.appendChild(node.cloneNode(true)); 
});
</script>

Да именно так, спасибо, но проблема в том что эта конструкция работает только в FF, в IE6 отказывается, это решаемо ?

И на сколько я понял работает только с <div> с моим примером тоже не работает и с этим уже не чего не поделаешь верно ?

Deff 07.01.2013 22:02

Цитата:

Сообщение от lamer
Да именно так, спасибо, но проблема в том что эта конструкция работает только в FF, в IE6 отказывается, это реша

:) А в чем разница данного кода(пост 9) по сравнению с постом 6 ?

lamer 07.01.2013 22:27

Цитата:

Сообщение от Deff (Сообщение 225870)
:) А в чем разница данного кода(пост 9) по сравнению с постом 6 ?

В 6 посте <div> копируется полностью, работает и в FF и IE6, а в 9 посте копируется только содержимое идентификатора, работает в FF в IE6 не работает.

Не совсем догнал суть вашего поста ? Если пытались навести на мысль то её тоже не уловил, пожалуйста можно подробнее ?

Deff 07.01.2013 23:21

Цитата:

Сообщение от lamer
В 6 посте <div> копируется полностью, работает и в FF и IE6, а в 9 посте копируется только содержимое идентификатора, работает в FF в IE6 не работает.

Гы ну дык плохо поясняли!
<style>
#Wrp2 {
 border:2px solid red;
 padding:6px;
 width:200px;
}
#Myelem {
 padding:6px;
 border:1px solid blue;
 width:160px;
}
p {
 border:1px solid green;
 padding:6px;
}
</style>



<div id="Myelem"><p>sasddsf</p></div>

<div id="Wrp2"><p>tttttttttttf</p></div>


<script type="text/javascript">
Elems = document.getElementById('Myelem').innerHTML;
WrapNewPos = document.getElementById('Wrp2');
WrapNewPos.innerHTML+=Elems;

alert('HTML родителя:\n\n'+WrapNewPos.innerHTML);
</script>

lamer 07.01.2013 23:38

мда, я в шоке, все оказалось на столько просто.

Deff, спасибо.

Такой вопрос, почему подобная конструкция не работает если вместо <div> использовать <tr> ?

Deff 07.01.2013 23:57

lamer,
Эээ конкретней можно - в таблицах элементы подключаются через tablecelllamer,
у таблиц спецметоды .insertCell() insertRow() newrow newcell deleteRow() deleteCell() http://sevidi.ru/webd/dweb/javapage46.php

monolithed 08.01.2013 01:13

Цитата:

Сообщение от lamer
Да именно так, спасибо, но проблема в том что эта конструкция работает только в FF, в IE6 отказывается, это решаемо ?

<div id="code">
  <div>
    <div>foo</div>
  </div>
</div>
<div id="copy"></div>

<script>
var move_child = function(object) {
       var fragment = document.createDocumentFragment();
       var nodes = object.from.childNodes;

       for (var i = 0, length = nodes.length; i < length; i++)
              fragment.appendChild(nodes[i].cloneNode(true));

       object.to.appendChild(fragment);
};

move_child({
       from: document.getElementById('code'),
       to:   document.getElementById('copy')
});
</script>


Цитата:

Сообщение от Deff
Гы ну дык плохо поясняли!

Я тоже намекал :)

PS: только innerHTML я бы не посоветовал использовать если есть обрабочики событий на элементах

Deff 08.01.2013 01:42

Цитата:

Сообщение от monolithed
Я тоже намекал

:cray: Я в анусе был после двух часов тыка капчи на хабре - (мозги набок


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