当我克隆元素时,我的演示非常清楚 我克隆并删除了div,但是:last元素(li)不应该被删除。 我错过了什么?
与此有关!:
$(document).on("click", 'li.delete',function () {
$(this).closest(".outerDiv").remove();
if ($(this).is(".outerDiv:last")){
return false;
}
样本: http://jsfiddle.net/XeELs/86/
JQUERY var cloneCount = 0; $(“#add-address”)。click(function(){
$("#to-add-address").clone()
.attr("id", "to-add-address_Clone" + cloneCount)
.insertAfter("#to-add-address");
$("#clone", "#to-add-address_Clone" + cloneCount)
.attr("id", "clone_Clone" + cloneCount);
cloneCount++;
});
$(document).on("click", '.options li a',function () {
$(this).closest(".options").find('li a').removeClass('selected');
$(this).addClass('selected');
});
$(document).on("click", 'li.delete',function () {
$(this).closest(".outerDiv").remove();
if ($(this).is(".outerDiv:last")){
return false;
}
});
答案 0 :(得分:1)
使用size()方法查找有多少个地址块,这样您就可以删除它们,直到只剩下一个:
$(document).on("click", 'li.delete',function () {
if ($('.outerDiv').size() > 1){
$(this).closest(".outerDiv").remove();
}
}
答案 1 :(得分:1)
试试这段代码
var cloneCount = 0;
$("#add-address").click(function() {
$("#to-add-address").clone()
.attr("id", "to-add-address_Clone" + cloneCount)
.insertAfter("#to-add-address").addClass('cloned'); //add a new class cloned to the cloned outerDivs
$("#clone", "#to-add-address_Clone" + cloneCount)
.attr("id", "clone_Clone" + cloneCount);
cloneCount++;
});
$(document).on("click", '.options li a',function () {
$(this).closest(".options").find('li a').removeClass('selected');
$(this).addClass('selected');
});
$(document).on("click", 'li.delete',function () {
$(this).closest(".outerDiv").filter('.cloned').remove(); // and delete only the cloned ones
if ($(this).is(".outerDiv:last")){
return false;
}
});