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 03:55

Скопировать HTML код с одного id в другой
 
Здравствуйте!
Возник такой вопрос, каким методом скопировать содержимое внутри конкретного идентификатора и поместить его в другой ?
При этом нужно копировать не только текст но и весь HTML код.

<html>

<head>
</head>

<body>
<td id="code">
<a style="text-decoration:underline" href="javascript:void(0);"><b>Код</b></a>: 0123456789 <span>•</span>
<b><a style="text-decoration:underline" href="javascript:void(0);">Е-код</a></b>: 0123-456-789<br>
</td>

<td id="copy"></td>
</body>

</html>


т.е. нужно копировать содержимое id="code" и вставить в id="copy"
Возможно ли подобное ? Подскажите куда копать.

Deff 07.01.2013 04:16

Цитата:

Сообщение от lamer
Возник такой вопрос, каким методом скопировать содержимое внутри конкретного идентификатора и поместить его в другой ?
При этом нужно копировать не только текст но и весь HTML код.

<style>
#Wrp2 {
 border:2px solid red;
 height:56px;
 width:200px;
}
#Myelem {
 border:1px solid blue;
 width:160px;
}
</style>



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

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


<script type="text/javascript">
Elem = document.getElementById('Myelem');
WrapNewPos = document.getElementById('Wrp2');
setTimeout('WrapNewPos.appendChild(Elem)',3000)
</script>

monolithed 07.01.2013 05:07

Добавить текст во второй узел:

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

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

copy.innerHTML = code.innerHTML;
</script>

lamer 07.01.2013 05:35

Deff, спасибо, но вашь пример перемещает один идентификатор во второй, а не копирует.

нужно чтоб в итоге страница стала такой:
<html>

<head>
</head>

<body>
<td id="code">
<a style="text-decoration:underline" href="javascript:void(0);"><b>Код</b></a>: 0123456789 <span>•</span>
<b><a style="text-decoration:underline" href="javascript:void(0);">Е-код</a></b>: 0123-456-789<br>
</td>

<td id="copy">
<a style="text-decoration:underline" href="javascript:void(0);"><b>Код</b></a>: 0123456789 <span>•</span>
<b><a style="text-decoration:underline" href="javascript:void(0);">Е-код</a></b>: 0123-456-789<br>
</td>
</body>

</html>


monolithed, вообще не в ту сторону, но за проявленный интерес спасибо =)

monolithed 07.01.2013 05:46

Цитата:

Сообщение от lamer
вообще не в ту сторону

Да ладно, вы код точно читали?

Я вам привел пример как решить вашу задачу, а вы уже сами должны заменить идентификаторы

Deff 07.01.2013 05:52

Цитата:

Сообщение от lamer
Deff, спасибо, но вашь пример перемещает один идентификатор во второй, а не копирует

<style>
#Wrp2 {
 border:2px solid red;
 height:56px;
 width:200px;
}
#Myelem {
 border:1px solid blue;
 width:160px;
}
</style>



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

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


<script type="text/javascript">
Elem = document.getElementById('Myelem').cloneNode(true);
WrapNewPos = document.getElementById('Wrp2');
setTimeout('WrapNewPos.appendChild(Elem)',3000)
</script>

monolithed 07.01.2013 06:02

Deff,

Hужно скопировать содержимое первой ноды во вторую, а не сделать копию первой

Deff 07.01.2013 06:15

monolithed,
Там с задержкой просто

<style>
#Wrp2 {
 border:2px solid red;
 height:56px;
 width:200px;
}
#Myelem {
 border:1px solid blue;
 width:160px;
}
</style>



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

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


<script type="text/javascript">
Elem = document.getElementById('Myelem').cloneNode(true);
WrapNewPos = document.getElementById('Wrp2');
var str = 'HTML родителя:\n\n'
setTimeout('WrapNewPos.appendChild(Elem);alert(str+WrapNewPos.innerHTML)',1500)
</script>


<style>
#Wrp2 {
 border:2px solid red;
 height:56px;
 width:200px;
}
#Myelem {
 border:1px solid blue;
 width:160px;
}
</style>



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

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


<script type="text/javascript">
Elem = document.getElementById('Myelem').cloneNode(true);
WrapNewPos = document.getElementById('Wrp2');
var X = document.createElement('div')
X.appendChild(Elem);
var HTML = X.innerHTML;
WrapNewPos.innerHTML=HTML;
alert('HTML родителя:\n\n'+WrapNewPos.innerHTML);
</script>

monolithed 07.01.2013 06:21

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>

Deff 07.01.2013 06:34

monolithed,
Думаю разберётся - примеров масса
Тут два часа пытался капчу на Хабре превозмочь, так и не понял что произошло, пока комп не перезагрузил, - ужос!


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