- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 anchor ,并且已经附加了一个 onClick 回调,因此一旦单击它,就会触发一个 AJAX 请求,该请求会调用一个从数据库中删除图像的 View 。它还应该删除 <div class="image-preview">
完全一样,但是由于某种原因这并没有发生。
当我在JSFiddle中测试div删除代码时, 有用。图像已成功从数据库中删除,并且该过程涉及delete_view。我也尝试过console.log
从成功回调内部,我可以看到一条调试消息。 console.log($(this).parents('.image-preview'));
返回Object { length: 0, prevObject: Object(1) }
,因此我认为选择器失败了。
可能是什么原因?
HTML:
<div id="information">
<div class="image-previews">
<div class="image-preview">
<img src="/media/tmp/None/IMG_20190507_144128.jpg" width="80" height="54">
<p><a id="115" class="delete-temp-image-link">delete</a></p>
<label><input type="radio" name="main" value="IMG_20190507_144128.jpg">main</label>
</div>
</div>
<div id="div0">
<div>Name: IMG_20190507_144128.jpg</div>
<div>Size: 3.03MB</div>
<div>Type: image/jpeg</div>
<div class="progressNumber">100%</div>
</div>
</div>
jQuery:
var $deleteClicked = function(event) {
var url = Urls.deleteTempImage(event.target.id);
$.ajax({
url: url,
data: {
'id': event.target.id
},
success: function (data) {
console.log('spam');
$(this).parents('.image-preview').remove();
}
});
}
$(document).on('click', '.delete-temp-image-link', $deleteClicked);
查看:
def delete_view(request, id):
img = get_object_or_404(TemporaryImage, id=id)
img.delete()
return HttpResponse('successfull')
最佳答案
$(this)
不适用于您的命名点击回调函数。使代码更明确的一种方法是存储 $(this)
,正如其他人所说 - 或者,只需使用 id
无论如何你已经过去了。例如:
var $deleteClicked = function(event) {
var url = Urls.deleteTempImage(event.target.id);
$.ajax({
url: url,
data: {
'id': event.target.id
},
success: function (data) {
console.log('spam');
$("#"+event.target.id).closest('.image-preview').remove();
}
});
}
$(document).on('click', '.delete-temp-image-link', $deleteClicked);
另外,请注意我使用了 jQuery .closest()
而不是.parents()
。来自 jQuery docs , .closest()
执行以下操作:
For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.
查看文档页面,了解 .closest()
之间差异的描述。和.parents()
。主要区别在于.closest()
仅向上遍历 DOM 树直到找到匹配项,而不是一直遍历到根元素。我怀疑这会对性能产生巨大影响,但由于您只选择一个 <div>
,这是稍微更精确的代码。
关于javascript - jQueryparents() 选择器失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58261615/
大家好,感谢您抽出时间, 我最近一直在摆弄 jQuery(简而言之,我是一个新手),我对“parents()”方法很感兴趣。在 jquery.com 上的文章中,他们展示了一个示例,该示例允许显示
完全是使用 jQuery 的新手,但遇到了一些问题。 我有一个表格,其中一些单元格中有一个(每个单元格不得超过一个选择)。 在以下代码中,select 是传递给函数的元素。我正在尝试获取父级,以便我可
我有一个 anchor ,并且已经附加了一个 onClick 回调,因此一旦单击它,就会触发一个 AJAX 请求,该请求会调用一个从数据库中删除图像的 View 。它还应该删除 完全一样,但是由于某种
我在使用 jQuery 获取元素的父元素列表时遇到一些问题。 也许我遗漏了一些东西,但我在几个嵌套的 div 中有一个链接,并且正在尝试获取 parent 的 parent 的 sibling 列表。
我在 jQuery 中为每个循环使用以下选择器: $("#myid").parents().andSelf().each(function({}) 选择器返回一个像这样的对象: object[html
我试图通过单击按钮获取表格单元格内两个输入字段(一个文本字段和一个选择字段)的值。 Seconds Minutes Hours
我是一名优秀的程序员,十分优秀!