【发布时间】:2020-03-12 22:25:04
【问题描述】:
我给这个问题的标题是“jQuery 删除 DOM 元素不能按预期工作”。但我不确定删除功能是否是真正的问题。老实说,我完全不知道在哪里寻找解决方案。
我想上传 DOM 中存在的一组图像。上传图像后,我想从 DOM 中删除该图像的父级,以便父级和图片连同它不再可见。图像及其父对象被动态添加到 DOM。
当我点击一个按钮时,这个 JavaScript 被调用:
$('#StartUpload').on('click', function () {
if (inputIsComplete()) {
const imgs = document.querySelectorAll('.pic')
for (let i = 0; i < imgs.length; i++) {
const img = imgs[i].getAttribute('src')
uploadImage(imgs[i], img, i + 1)
}
}
})
这是uploadImage函数:
function uploadImage (img, file, order) {
const d = new Date()
const data = {
file: file,
traject: $('select').eq(2).val(),
filename: d.getTime().toString(),
order: order,
}
$.ajax({
method: 'POST',
url: 'save-pictures.php',
data: data,
success: function () {
console.log(`${data.order} - ${data.filename} uploaded succesfully.`)
$('.img-canvas').eq(data.order - 1).remove()
},
error: function (err) {
console.log(err)
},
})
}
问题在于 AJAX 调用的成功方法。所有图像都记录到控制台。所有图像都有效地上传到服务器,并且所有图像的记录都在数据库中创建。但并非所有图像都从 DOM 中删除。大约一半是,一半不是。
非常感谢任何想法。
【问题讨论】:
标签: javascript jquery ajax dom