2010-02-25 16 views
23

JQuery kullanarak, bu şekilde bir Div kopyalamak ve yeni bir tanımlayıcı eklemek için kimliğine ve tüm çocuğunuza ait ID'lere yeni bir tanımlayıcı eklemek mümkün mü?Bir boşluk klonlayın ve kimliklerini değiştirin ve tüm çocukların benzersiz olmasını sağlayın

Mesela ben bu klonlamak mümkün istiyorum:

<div id="current_users"> 
<table id="user_list"> 
<tr id="user-0"> 
<td id="first_name-0">Jane</td> 
<td id="last_name-0">Doe</td> 
</tr> 
<tr id="user-1"> 
<td id="first_name-1">John</td> 
<td id="last_name-1">Doe</td> 
</tr> 
</table> 
</div> 

Ve şuna benzer var: Ya sadece benim yapısını yeniden düşünmek ve rel özelliklerini kullanmalıdır

<div id="current_users_cloned"> 
<table id="user_list_cloned"> 
<tr id="user-0_cloned"> 
<td id="first_name-0_cloned">Jan</td> 
<td id="last_name-0_cloned">Doe</td> 
</tr> 
<tr id="user-1_cloned"> 
<td id="first_name-1_cloned">John</td> 
<td id="last_name-1_cloned">Doe</td> 
</tr> 
</table> 
</div> 

ve yeniden kullanılabilir sınıf bildirimleri?

sayesinde

Tegan Snyder

cevap

40
$("#current_users").clone(false).find("*[id]").andSelf().each(function() { $(this).attr("id", $(this).attr("id") + "_cloned"); }); 

Ve takılı olup olmadığını etkinliklerinizi izlemek. Kimliklere güveniyorsa onları düzeltmeniz gerekecek.

+1

Tam olarak aradığım şey için teşekkürler. Harika çalışıyor. –

+4

"attr()': '$ (this) .attr ('id', function (i, id) {return id +" _ cloned ";}); – Phrogz

+1

Teşekkürler. Kodun yüzlerce hattımı koru. :) – Roopendra

1

Aslında bu klonlanmış DIV'lerin her birini kod aracılığıyla benzersiz olarak tanımlamanız gerekmedikçe, kimliğinizi yeniden kullanılabilir sınıflarla değiştiririm. Aksi takdirde, David Morton'un cevabı, hile yapabilecek gibi görünüyor.

+0

Evet kabul ediyorum. Yaptığım şey için eşsizliğe ihtiyacım var :) Öneriniz için teşekkürler. –

İlgili konular