执行后删除自身的javascript / jquery函数

时间:2014-02-28 11:05:14

标签: javascript jquery html ajax

我正在向我的某个控制器发送ajax请求,以更新用户交互(他访问/喜欢的页面),以获得非常深入的洞察力分析。我将这些信息存储在我的mongo db中。

我想要的是,在此请求成功后,删除此脚本。但所有警报都有效,但脚本永远不会删除。以下是我的代码

<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. 尝试指定父节点并删除子节点。
  2. 我在所有三次尝试中都失败了。我真的被困在这里了。

    为什么它不能正常工作?

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

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

2 个答案:

答案 0 :(得分:0)

您可以使用普通的Javascript来执行此操作(未经过测试)

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

不确定这是理想的,但它应该完全从DOM中删除它。

答案 1 :(得分:0)

这有效:

<button>remove</button>

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

在此处尝试:http://jsfiddle.net/4ungb/

所以要么你有a)其他错误阻止该脚本完成或b) 您的测试删除标准不正确。