一个javascript/jquery函数,用于在执行后删除自身



我正在向我的一个控制器发送一个ajax请求,以更新用户交互(他访问/喜欢的页面),以便进行深入分析。我将这些信息存储在我的mongo数据库中。

我只想在这个请求成功后删除这个脚本。但所有警报都有效,但脚本从不删除。以下是我的代码

<div id="delete_this">
<script>
$(document).ready(function() {
$.ajax({
url: weblink+'user-interactions',
type: 'POST',
dataType: 'html',
data: {
//some post data
},
})
.done(function(html) {
alert("works");
var status = "executed";
alert("works here");
$("#delete_this").remove();
})
.fail(function(html) {
console.log("error");
});

});
</script>
</div>

到目前为止我所做的:

1) 尝试添加一个div作为父级,并指向删除该div,如脚本中所示。

2) 将.remove()从脚本中分离出一个新的脚本标记,并使用了类似的内容。

<script>
$(document).ready(function() {
$("#delete_this").remove();
});
</script>
  1. 尝试指定parentnode并删除子节点

我三次尝试都失败了。我真的被困在这里了。

为什么它不起作用?

我还有一个与此有关的问题。

此链接表示javascript将一直保留在会话中,直到页面刷新为止。那么,我们为什么不遵循一个可以执行脚本并删除它们的标准呢通过这样做,我们将能够实现构建更安全的网页。是吗?

您可以使用纯Javascript来完成此操作(未测试此操作)

var domNode = document.getElementById('delete_this');
var nodeParent = domNode.parentNode;
nodeParent.removeChild(domNode);

不确定这是否理想,但应该将其完全从DOM中删除。

这是有效的:

<button>remove</button>
<script id="test">
$( "button" ).click(function() {
$( "#test" ).remove();
alert("removed " + ($( "#test" ).length == 0));
});
</script>

在这里试试:http://jsfiddle.net/4ungb/

因此,您要么有a)其他错误阻止该脚本完成,要么b)您测试删除的条件不正确。

相关内容

  • 没有找到相关文章