【发布时间】:2012-02-17 21:08:36
【问题描述】:
我正在尝试删除 AJAX 成功的元素,该元素在之前的 AJAX 调用期间加载并附加到文档。
我的代码如下所示:
$("#jobs-table-body").on("click", ".one-rc-button", function() {
var ctx = $.parseJSON($(this).siblings(".context").html());
$("#one-rc-candidate-id").val(ctx.candidateId);
$("#one-rc-job-id").val(ctx.jobId);
var loader = $("#wrapper").loader();
$.post($("#one-rc-form").attr("action"), $("#one-rc-form").serialize(), function(result) {
loader.remove();
if(result.success) {
// This works and returns 1
alert($("#candidate-row-" + result.rejectedCandidateId).length);
// This doesn't seem to be doing anything
$("#candidate-row-" + result.rejectedCandidateId).remove();
} else {
//$("#one-jc-messages").html(result.error);
}
});
});
元素 .one-rc-button 和 #candidate-row-<candidateId> 由先前的 AJAX 调用加载,它们附加到文档中,因为我可以在我的页面上很好地看到它们。
现在,在单击先前生成的.one-rc-button 时,我会触发第二次 AJAX 调用(工作正常),在 result.success 上,我想删除 #candidate-row-<candidateId>(在先前生成的父元素中) .
警报有效并返回1。所以我确定选择器很好,它匹配一个独特的元素。
我不明白为什么它无法从页面中删除元素。
观察
- 我使用 Firefox 10.0.2,此问题可重现。
- 在 IE 8 上,它可以工作(元素被删除)
- 在 Firebug 上调试脚本时,我可以验证我是否获得了正确元素的句柄。
【问题讨论】:
-
再次检查长度。我敢肯定在
remove之后它会是0。 -
@gdoron 我刚试过。它保持
1。 -
那是什么元素???
-
这是一个
<div/>,里面有更多的标记。 -
另一个更新是我能够成功地做
.hide()。只是.remove()不起作用。