2009-05-28 15 views
73

Sorunumu çözme konusunda bazı ipuçları arıyorum.JavaScript/JQuery'de html öğesi nesnelerini klonlamak mümkün mü?

Bir tabloda bir html öğesi (seçim kutusu giriş alanı gibi) var. Şimdi nesneyi kopyalamak ve kopyadan yeni bir tane oluşturmak ve JavaScript ya da jQuery ile oluşturmak istiyorum. Sanırım bu bir şekilde çalışmalı ama şu anda biraz clueless. Bu (sözde kod) gibi

şey:

+3

http://stackoverflow.com/search?q=jquery+copy+element+content 10 ilgili bir sürü soru vardır. –

cevap

34

jQuery yolu (değil en verimli): JQuery

ait clone() yöntemine

Bak yapabileceğiniz kodunuzu kullanma Böyle bir şey:

$('#ddl_1').clone().attr('id', newId).appendTo('p'); // append to where you want 
+22

Bir öğeyi klonladığınızda kimliği değiştirmek ÇOK önemlidir. –

3

Aslında jQu'da çok kolay eri: tabii

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

Değişim .appendTo() ...

+0

+1 beni yendin! –

0

bir satırda:

newelement = element.cloneNode(bool) 

boolean olup olmadığını gösterir: yerli javascript ile

$('#selector').clone().attr('id','newid').appendTo('#newPlace'); 
+1

Öznitelik değerinizin değişmeyecek bir dize olduğu gibi yardımcı olacağını sanmıyorum. –

238

çocuk düğümlerini klonlamak veya

+33

en iyi cevap. İhtiyacınız olmayan yerlerde jquery kullanmayın. – luschn

+0

İyi görünüyor ... ama bugün itibariyle tarayıcı uyumluluğu tartışmalıdır. –

+11

@AniketSuryavanshi Özellikle 4 Şubat hakkında emin değilim, ancak [uyumluluk bugün mükemmel görünüyor] (http://quirksmode.org/dom/core/#t91) –

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

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

Kanıtı:Evet, diğer elemana içine bir elemanın çocukları kopyalayıp yapıştırabilirsiniz http://jsfiddle.net/de9kc/

+0

Yinelenen kimlikler Sizin yaklaşımınız ile ilgili bir sorun olacaktır –

1

deneyin:

Sen "# foo2" seçmeniz gerekir
$('#foo1').html($('#foo2').children().clone()); 
0

senin seçmen olarak. Ardından, html() ile alın. jsfiddle İşte

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

edilir: http://jsfiddle.net/fritzdenim/DhCjf/

2

Bir oluşturmak için klon() yöntemini kullanabilirsiniz Burada

<div id="foo1"> 

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

javascript: Burada

html copy ..

FIDDLE HERE

İlgili konular