Du kannst diesen js Code ausprobieren.
Szenario: - Ich hatte das Szenario, eine Tabelle innerhalb eines div zu klonen und auch den Klon beim Klicken auf den Link zum Entfernen des Klons zu entfernen.
var count=1;
function makeClone()
{
var $clone = $(".cloneTable:first").clone(true);
$clone.find(':text,:file').each(function() {
$(this).attr('id',($(this).attr("id")+count));
$(this).val(' ');
});
$clone.find("a").each(function() {
$(this).val('').attr('id', function(_, id) {
return count;
});
});
$clone.find("span").each(function() {
$(this).attr({
id: $(this).attr("id") + count
});
});
$clone.attr( 'id', function() {
return this.id + count; });
//für die Verwendung des Datepickers
$clone.find('.myDate').removeClass('hasDatepicker').datepicker();
$clone.appendTo('#addCarrierDiv');
$('#Test'+count).html('<strong>Test '+(parseInt(count)+parseInt(1))+'</strong>');
count=count+1;
}
Hier aktualisiere ich meine Antwort, um den Code zum Entfernen eines Klons bereitzustellen.
$(document).ready(function(){
$('.removeClone').live('click',function() {
var length=$('.cloneTable').length;
if(length==1)
{
alert('Es sollte mindestens ein Klon vorhanden sein');
return false;
}
var id = $(this).attr('id');
var countVal=parseInt(id)+parseInt(1);
$(this).closest('.cloneTable').remove();
for(var removecount=parseInt(countVal);removecount<=length;removecount++)
{
$clone=jQuery("#maintable"+removecount);
if(removecount==1)
{
$clone.find(':text,:file').each(function() {
var textId=$(this).attr("id");
var testVal=textId.replace(/[0-9]/g, '');
$(this).attr('id',testVal);
});
$clone.find("a").each(function() {
var textId=$(this).attr("id");
var testVal=textId.replace(/[0-9]/g, '');
$(this).attr('id',testVal+id);
});
$clone.find("span").each(function() {
var textId=$(this).attr("id");
var testVal=textId.replace(/[0-9]/g, '');
$(this).attr({
id: testVal
});
$(this).html('Test '+removecount+'');
});
$clone.attr( 'id', function() {
var textId=$(this).attr("id");
var testVal=textId.replace(/[0-9]/g, '');
return (testVal);
});
id=parseInt(id)+parseInt(1);
}
else
{
$clone.find(':text,:file').each(function() {
var textId=$(this).attr("id");
var testVal=textId.replace(/[0-9]/g, '');
$(this).attr('id',testVal+id);
});
$clone.find("a").each(function() {
var textId=$(this).attr("id");
var testVal=textId.replace(/[0-9]/g, '');
$(this).attr('id',testVal+id);
});
$clone.find("span").each(function() {
var textId=$(this).attr("id");
var testVal=textId.replace(/[0-9]/g, '');
$(this).attr({
id: testVal+id
});
$(this).html('Test '+removecount+'');
});
$clone.attr( 'id', function() {
var textId=$(this).attr("id");
var testVal=textId.replace(/[0-9]/g, '');
return (testVal+id);
});
id=parseInt(id)+parseInt(1);
}
}
count=parseInt(count)-parseInt(1);
});
});
Dies funktioniert gut für mich. Hoffentlich kann Ihnen dieser Code helfen.