2

私は次のような状況になりました。すべてのイベントが添付された要素のコンテンツを複製する必要があります。

HTML:

<div class="source">Say bye bye, little text!
    <span class="stay">I'm gonna clone!</span>
More text
</div>

<div class="destination">

</div>

<button>Clone!</button>

JS:

$('button').click(function(){
    $('.source').children().clone(true,true).appendTo($('.destination'));
});

どうすればそれを機能させることができますか? コピー先で親コンテナーを複製したり、html 入力を変更したりせずに、テキストも複製されることはありますか?

4

3 に答える 3

1

.source親クラスの場合は、これを試してください。

$('.destination').append(
    $('.source').clone( true )
).find('.source').contents().unwrap();
于 2013-03-15T11:42:44.157 に答える
1
$('.source').clone(true,true).appendTo($('.destination'));

現在、子ノードのみを複製しています。<span>

upd: または、オブジェクトの html を別のオブジェクトに追加できます。

$('.destination').append($('.source').html());

upd2 : 複製するのはユーザー入力であり、入力全体を含むある種の文字列があるため、次のように .source に追加します。

$(".source").append('<span id="some_id">' + user_input + '</span>');

そしてそれを複製します:

$(".source").find("#some_id").clone(true,true).appendTo($('.destination'));
于 2013-03-15T11:07:35.753 に答える
1

あなたは今、子だけを複製しています。コンテンツをスパンでラップすることをお勧めします。この更新されたフィドルを確認してください: http://jsfiddle.net/QPMjH/3/

$('button').click(function(){
    var $clonedSource = $('.source').clone(true);
    $clonedSource.wrapInner('<span>');
    $clonedSource.children().clone(true,true).appendTo($('.destination'));
});

または1行で:

$('button').click(function(){
    $('.source').clone(true).wrapInner('<span>').children().clone(true,true).appendTo($('.destination'));
});
于 2013-03-15T11:10:46.873 に答える