当前工作的jQuery克隆,其中我使用当前代码Increment整个div的id递增,但没有按顺序expy -1起作用,如果用户单击添加更多按钮,它将生成随机id编号expy-3。所以一旦我添加行我想用我的代码删除行,我可以删除行,但是id不会递减,例如如果我有expy-1,expy-2 expy-3,如果我删除expy-2 expy-3 id必须更改expy-2,因为我已经拥有expy1
这是jQuery代码
$(document).on("click", ".exp_add_button", function() {
var $clone = $('.cloned-row3:eq(0)').clone(true, true);
var num = $('.cloned-row3').length;
$clone.find(".chk_Field_exp").val('');
$clone.find('[id]').each(function() {
this.id += '_' + num;
$(this).removeClass("errRed");
if ($(this).hasClass("required_Field")) {
$(this).prevAll('label').find('span.required-star').removeClass('text-error-red');
$(this).addClass("cloned_field");
} else {
$(this).removeClass("errRed");
$(this).removeClass("text-error-red");
}
});
$clone.find('.btn_more').after("<input type='button' class='btn_less1 edu_btnle' id='buttonless" + (++rowCount) + "'/>")
$clone.attr('id', "expy-" + (++rowCount)).addClass('exp_add');
$clone.find(".startDate").val('');
$clone.find(".endDate").val('');
/*$clone.find(".degree_Description").attr('disabled', true).val('');*/
$clone.find(".startDate,.endDate")
.removeClass('hasDatepicker')
.removeData('datepicker')
.datepicker({
dateFormat: "mm/dd/yy",
changeMonth: true,
yearRange: "-100:+0",
changeYear: true,
maxDate: new Date(),
showButtonPanel: false,
beforeShow: function() {
setTimeout(function() {
$('.ui-datepicker').css('z-index', 99999999999999);
}, 0);
}
});
$(this).parents('.wrk_exp').after($clone);
});
这是删除代码
$(document).on('click', ".btn_less1", function() {
var len = $('.cloned-row3').length;
if (len > 1) {
$(this).closest(".btn_less1").parent().parent().parent().remove();
}
});
这是fiddle link
提前致谢
最佳答案
这是因为在这两行中您将rowCount
的值增加了两次:
$clone.find('.btn_more').after("<input type='button' class='btn_less1 edu_btnle' id='buttonless" + (++rowCount) + "'/>")
$clone.attr('id', "expy-" + (++rowCount)).addClass('exp_add');
从底部的
++
中删除一个rowCount
,代码将为:$clone.find('.btn_more').after("<input type='button' class='btn_less1 edu_btnle' id='buttonless" + (++rowCount) + "'/>")
$clone.attr('id', "expy-" + (rowCount)).addClass('exp_add');
Fiddle
++rowCount
更改rowCount
的值并等于rowCount = rowCount+1