2010-10-23 4 views
23

Я хочу скопировать содержимое выбранного div в другой div с помощью jquery clone. , но я не хочу добавлять его в любом местекак клонировать содержимое div в другой div

Что я имею в виду, когда мы создаем клон div с jquery (исправьте меня, если я ошибаюсь), мы должны установить его положение, и оно будет динамически создавать новое подразделение, которое отображается.

, но я хочу, чтобы получить содержимое выбранного DIV и скопировать его на другой предварительный набор ДИВ

+0

поблагодарить у всех здесь является то, что я действительно хочу, чтобы это произошло http://www.jsfiddle.net/pahnin/c2p54/2/ – pahnin

ответ

46
var a = $('#selector').html(); 
var b = $('#selector').html(a); 

не уверен, что я правильно вас понял, но я думаю, вот что вы имели в виду :)

+14

Это также может быть записано:. '$ ('#') SelectorDestination HTML (. $ ('# selectorSource') HTML()); '. Избегание объявления переменных. –

+8

Единственное, на что мы должны быть осторожны, - мы не должны дублировать идентификаторы в html – kobe

+0

@ dustin да, это то же самое, но я подумал, так как он попросил не включать в дом «я не хочу добавлять его в любом месте»:) thats лучший путь вперед – Val

7

Я не согласен. Clone может сохранять данные без обращения к контенту.

Посмотрите здесь:

http://www.jsfiddle.net/dactivo/FqffM/

var mylayer=$('.hello').clone(); 

Здесь вы можете управлять переменной "mylayer", как вы хотите, и это не в DOM.

+0

в любом случае метод val просто, и я думаю, что он подходит мне – pahnin

+0

Конечно, html() - отличный метод, но хорошо знать, что clone() можно управлять без включения в DOM – netadictos

+1

'Clone' также копирует контейнерный элемент, который я не думаю, что хочет @pahnin. –

4
$("#from").clone().appendTo($("#to")); 

Но он не будет удалять/скрывать главный DIV. Чтобы скрыть главный DIV, сделайте следующее:

$("#from").clone().appendTo($("#to")); 
$("#from").remove(); 
+0

Я думаю, вы не поняли мой вопрос. – pahnin

4
$(".from").click(function() { 
    $(".from").removeClass("CloneMe"); 
    $("#to").html(''); 
    $(this).addClass("CloneMe"); 
    $(".CloneMe").clone().appendTo("#to"); 

}); 

Вы можете добавить класс на клик (или другое событие), который является закодирована клонировать. В этом примере есть список тех же имен классов, содержащих стилизованный контент (divs и т. Д.) - добавьте класс .CloneMe, но сначала удалите этот класс, чтобы очистить div, если пользователь выбирает другой элемент.), чтобы быть в безопасности, удалите любой html. Затем примените класс, используя (this), чтобы избежать захвата всех элементов с этим именем класса и, наконец, добавить в div. В результате пользователь может выбрать любой элемент с этим именем класса и заполнить его в контейнере. - Я предполагаю, что использование класса для контейнера позволит вам заполнить его более чем в одном месте.


+0

Зачем все это вместо прямого ответа @ val? – pahnin

Смежные вопросы