Можно ли клонировать объекты html-элементов в JavaScript / JQuery?

Я ищу несколько советов о том, как решить мою проблему.

У меня есть элемент HTML (например, поле ввода в поле выбора) в таблице. Теперь я хочу скопировать объект и сгенерировать новый из копии, и это с помощью JavaScript или jQuery. Я думаю, что это должно как-то сработать, но сейчас я немного невежественен.

Примерно так (псевдокод):

oldDdl = $("#ddl_1").get(); 

newDdl = oldDdl;

oldDdl.attr('id', newId);

oldDdl.html();
 Felix Kling28 сент. 2012 г., 02:23
stackoverflow.com/search?q=jquery+copy+element+content имеет кучу связанных вопросов.

Ответы на вопрос(8)

На самом деле это очень просто в jQuery:

$("#ddl_1").clone().attr("id",newId).appendTo("body");

Измените .appendTo (), конечно ...

Вы можете использоватьКлон () способ создать копию ..

$('#foo1').html( $('#foo2 > div').clone())​;

Скрипка здесь

Попробуй это:

$('#foo1').html($('#foo2').children().clone());

его с помощью html ().

Вот HTML:

<div id="foo1">

</div>
<div id="foo2">
    <div>Foo Here</div>
</div>​

Вот JavaScript:

$("#foo2").click(function() {
    //alert("clicked");
    var value=$(this).html();
    $("#foo1").html(value);
});​

Вот jsfiddle:http://jsfiddle.net/fritzdenim/DhCjf/

Решение Вопроса

Посмотрите наКлон () метод JQuery

Используя свой код, вы можете сделать что-то вроде этого:

$('#ddl_1').clone().attr('id', newId).appendTo('p'); // append to where you want
 Dragos Durlut09 окт. 2012 г., 12:47
ОЧЕНЬ важно изменить идентификатор при клонировании элемента.

С родным JavaScript:

newelement = element.cloneNode(bool)

где логическое значение указывает, следует ли клонировать дочерние узлы или нет.

Вот полная документация по MDN.

 user184606504 апр. 2015 г., 20:41
@AniketSuryavanshi Я не уверен насчет 4 февраля, в частности, носовместимость выглядит отлично сегодня
 Aniket Suryavanshi04 февр. 2015 г., 21:24
Выглядит хорошо ... но совместимость браузера на сегодняшний день под вопросом.
 luschn16 мар. 2014 г., 16:50
лучший ответ. не используйте jquery там, где он вам не нужен.
 przemo_li28 авг. 2017 г., 11:05
Идентификаторы и имена будут продублированы. Идентификаторы ДОЛЖНЫ быть изменены, имена МОГУТ быть оставлены как есть, если ожидаются повторяющиеся имена.

В одну строку:

$('#selector').clone().attr('id','newid').appendTo('#newPlace');
 Jamie R Rytlewski19 авг. 2011 г., 22:18
Я не думаю, что это поможет, поскольку значение вашего атрибута - это строка, которая не изменится.

вы можете скопировать дочерние элементы одного элемента и вставить их в другой элемент:

var foo1 = jQuery('#foo1');
var foo2 = jQuery('#foo2');

foo1.html(foo2.children().clone());

Доказательство:http://jsfiddle.net/de9kc/

 przemo_li28 авг. 2017 г., 11:05
Двойные идентификаторы будут проблемой при вашем подходе

Ваш ответ на вопрос