我想每次有人点击删除按钮时从数组中删除一个图像。我尝试使用splice
方法,但我无法使其工作,因为单击删除按钮后图像仍然可见。
HTML:
<span>Image:</span>
<div id="image"></div>
<a class="remove" href="">Remove</a>
jQuery的:
$(document).ready(function () {
var image = new Array();
for (i = 0; i < 5; i++) {
image[i] = new Image();
image[i].src = 'http://img3.wikia.nocookie.net/__cb20120809232434/fantendo/images/3/37/NSMBWii1upMushroom.png';
$("#image").append($("<a>", {
html: $("<img>", {
src: image[i].src,
height: 50
})
}));
}
$(".remove").click(function (e) {
e.preventDefault();
image.splice(-1, 1);
});
});
答案 0 :(得分:1)
您需要做的是根据数组修改后的长度获取索引并将其删除:
$(".remove").click(function (e) {
e.preventDefault();
image.splice(0, 1);
$('#image a').eq(image.length).remove();
});
答案 1 :(得分:1)
您必须使用更新的数组在容器中附加图像,创建一个函数并在每次从数组中删除项目后调用它:
function RefreshImages(images) {
$("#image").empty()
for (i = 0; i < images.length; i++) {
images[i] = new Image();
images[i].src = 'http://img3.wikia.nocookie.net/__cb20120809232434/fantendo/images/3/37/NSMBWii1upMushroom.png';
$("#image").append($("<a>", {
html: $("<img>", {
src: images[i].src,
height: 50
})
}));
}
}
并在remove事件中以这种方式调用它:
$(".remove").click(function (e) {
e.preventDefault();
image.splice(-1, 1);
RefreshImages(image)
});
答案 2 :(得分:1)
可以使用last()
方法过滤子项并使用remove()
从DOM中删除
$(".remove").click(function (e) {
e.preventDefault();
image.splice(-1, 1);
$("#image").children().last().remove();
});