删除动态添加的复选框和相应的图像
我有一个打开文件选择器窗口的按钮。 当用户选择文件时,脚本会将该图像上传到带有复选框的div。
这是删除复选框和图像的脚本的一部分,但它当前也删除了父元素。
$("#imageForm").on('click', 'input[value="Delete"]', function () { $('#iso_preview').has('input:checkbox:checked').remove() });
单击删除按钮时,如何删除所有选中的复选框及其对应的图像?
的jsfiddle
您需要更改insert fileUpload()
函数,以便图像包含在内部包装器中。 更改以下行
if (imageType.test(file.type)) { fileTemp = document.createElement("img"); $("#iso_preview").append(""); fileTemp.classList.add("preview_image"); } else{ fileTemp = document.createElement('div'); fileTemp.classList.add('div'); } fileTemp.file = file; $('#'+preview).append(fileTemp);
对此……
var container = $(""); if (imageType.test(file.type)) { fileTemp = document.createElement("img"); fileTemp.classList.add("preview_image"); } else{ fileTemp = document.createElement('div'); fileTemp.classList.add('div'); } fileTemp.file = file; container.append(fileTemp); $("#iso_preview").append(container);
然后你需要在这一行做一点修改
$('#iso_preview').has('input:checkbox:checked').remove();
选择#iso_preview div
而不是#iso_preview
$('#iso_preview div').has('input:checkbox:checked').remove();
这将删除包含#iso_preview
包含的已选中复选框的任何div
元素
( 演示 )