我如何设法删除最后<div><input type="text" name="mytext[]"></div>
甚至从“顶部”按钮删除?当我创建许多字段时,当我单击“删除它们上面的glyphicon”时,它会删除所有字段,而不是最后一个字段。
当我创建新字段时单击字段右侧的删除按钮时,它会删除该字段,但我也要从顶部按钮中删除
<div class="input_fields_wrap">
<button class="add_field_button">
<span class="glyphicon glyphicon-plus"></span>
</button>
<button class="remove_field" ><span class="glyphicon glyphicon-trash"></span>
</button>
<div><input type="text" name="mytext[]"></div>
</div>
$(document).ready(function () {
var max_fields = 10; //maximum input boxes allowed
var wrapper = $(".input_fields_wrap"); //Fields wrapper
var add_button = $(".add_field_button"); //Add button ID
var x = 1; //initlal text box count
$(add_button).click(function (e) { //on add input button click
e.preventDefault();
if (x < max_fields) { //max input box allowed
x++; //text box increment
$(wrapper).append('<div><input type="text" name="mytext[]"/><a href="#" class="remove_field">\n\
<button ><span class="glyphicon glyphicon-trash"></button>\n\
</span></a></div>'); //add input box
}
});
$(wrapper).on("click", ".remove_field", function (e) { //user click on remove glyphicon
e.preventDefault();
$(this).parent('div').remove();
x--;
})
});
答案 0 :(得分:2)
要解决此问题,您可以使用nextAll('div:last')
。试试这个:
$wrapper.on("click", ".remove_field", function(e) { //user click on remove glyphicon
e.preventDefault();
$(this).nextAll('div:last').remove();
x--;
})
请注意,我稍微修改了JS,以至于你没有对你的jQuery对象进行双重包装,而且我还略微修改了HTML,因此即使不使用glyphicons也很明显是添加/删除按钮。 / p>
答案 1 :(得分:0)
你应该找到这个父母的最后一个孩子并将其删除。
$(wrapper).on("click", ".remove_field", function (e) { //user click on remove glyphicon
e.preventDefault();
$(this).parent().children('div:last-child').remove();
x--;
})