我正在向我的 Controller 之一发送 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>
- 试图指定父节点并删除子节点。
我在所有三个尝试中都失败了。我真的被困在这里了。
它不工作的任何原因?
我还有一个与此相关的问题。
This link说 javascript 在页面刷新之前一直停留在 session 中。那么,为什么我们不遵循可以执行脚本并删除它们的标准呢? 通过这样做,我们将能够构建更安全的网页。不是吗?
最佳答案
您可以使用纯 Javascript 来执行此操作(未测试)
var domNode = document.getElementById('delete_this');
var nodeParent = domNode.parentNode;
nodeParent.removeChild(domNode);
不确定这是否理想,但应该将其从 DOM 中完全删除。
关于javascript - 执行后删除自身的 javascript/jquery 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22093365/