2016-12-04 62 views
-1

这里是添加一个带有“删除”图标和一个停止增加ID的新textarea的代码。 (请在下面的链接去拨弄)删除克隆元素后的精确编号

$(document).ready(function() { 
    i = 1; 
    $('.add').click(function() { 

    i++ 

    $(".append_data").append('<div class="textarea_cloned" id="' + i + '"><textarea name=txt_' + i + '>Textarea ' + i + '</textarea><div data-id="' + i + '" class="remove"> X </div></div>'); 
    }); 

    $('.append_data').on('click', '.remove', function(e) { 

    e.preventDefault(); 
    //$(this).closest('.textarea_cloned').remove(); 
    var id = $(this).data('id'); 
    $('#' + id + '').remove(); 
    return false; 
    }); 

    // end of it all 
}); 

当我点击“添加”一次 - 正在与ID 2生成一个新的textarea ...然后我决定将其删除。然后我再次点击“添加”,我想再次得到的是ID 2,但它会是ID 3.我知道我已经解释了它有点麻烦,下面是所需算法:

  1. 单击“添加新的textarea”
  2. 点击‘X’(删除它)
  3. 点击‘添加新的textarea’再次,它应该具有ID 2而不是ID 3.

这里是小提琴为您提供方便: https://jsfiddle.net/7avs08cx/

谢谢

回答

1

添加i--;$('#' + id + '').remove();

+0

才意识到应该是这样,该死=))) I = ID-1; night..heh ....谢谢你! 还有一个问题,如果你不介意(更难) - 如果我添加,如果我添加五个新的textareas,将删除#3和#4 ...如何从1到3安排其余的问题? 也许我应该把它作为一个单独的问题? – Rossitten

+0

好吧,你需要重新安排所有的文本区域,每次点击删除 –

+1

看到我的小提琴@Rossitten。我没有重新安排它https://jsfiddle.net/udcvaxot/1/ –

1

您可以获取已完成的文本区域的计数,然后继续。 我已经创造了独特的类计数类名:txtarea

$(document).ready(function() { 
 
    
 
    $('.add').click(function() { 
 
    var i = $('.txtarea').length; 
 
\t \t i = i+1; 
 
$(".append_data").append('<div class="textarea_cloned txtarea" id="' + i + '"><textarea name=txt_' + i + '>Textarea ' + i + '</textarea><div data-id="' + i + '" class="remove"> X </div></div>'); 
 
    }); 
 

 
    $('.append_data').on('click', '.remove', function(e) { 
 
    e.preventDefault(); 
 
    var id = $(this).data('id'); 
 
    $('#' + id + '').remove(); 
 
    return false; 
 
    }); 
 

 
    // end of it all 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form id="old"> 
 
    <textarea>Textarea 1</textarea> 
 
</form> 
 
<div class="txtarea append_data"></div> 
 
<div class="add">Add new text area</div>