Javascript 脚本删除自身

Javascript 脚本删除自身,javascript,Javascript,我想这样做: <body> <script id="a" > //Here i do a lot of things, then document.body.removeChild(document.getElementById("a")); </script> </body> //在这里,我做了很多事情 document.body.removeChild(document.getElementById(“a”); 它不起作用了 我不确定这是

我想这样做:

<body>
<script id="a" >
//Here i do a lot of things, then
document.body.removeChild(document.getElementById("a"));
</script>
</body>

//在这里,我做了很多事情
document.body.removeChild(document.getElementById(“a”);

它不起作用了

我不确定这是否有效,这取决于您插入脚本的位置,浏览器可能会在完成DOM创建之前执行代码。 最好使用jQuery这样的框架,在执行代码之前等待文档完成加载。如果使用jquery,它的工作原理如下:

<script id="a">
    $(document).ready(function(){
        //do your stuff here

       $("#a").remove();
    });
</script>           

$(文档).ready(函数(){
//在这里做你的事
$(“#a”).remove();
});

尝试从脚本本身删除脚本可能会导致问题。也许这会有用

<script id="a">
    var stuffFinished = false;
    $(document).ready(function(){
        //do your stuff here
        stuffFinished = true;
    });
</script> 

<script id="b">
    $(document).ready(function(){
       var timer = setInterval(function() {
         if (stuffFinished) {
           $("#a").remove();
           clearTimeout(timer);
         }
       }, 1000);
    });
</script> 

var=false;
$(文档).ready(函数(){
//在这里做你的事
stuffFinished=真;
});
$(文档).ready(函数(){
var timer=setInterval(函数(){
如果(填充完成){
$(“#a”).remove();
清除超时(计时器);
}
}, 1000);
});

我没有测试过这个,只是一个想法…

定义“不工作”。是否要将脚本从视图源中删除?我认为您不能这样做。为什么要删除脚本?通过查看浏览器源代码,它仍将在那里,因为它将被渲染。从理论上讲,它只是从内存中删除,但同样,不确定您是否可以这样做,尤其是从它本身。如果您希望它从“查看页面源”中消失:这是不可能的。但它会从DOM中删除。检查firebug或类似的工具,它适合我。我知道我不能从“查看源代码”中删除它。我只想从内存中删除它(当然还有firebug)。你能给我一个没有jQuery的方法吗?我可以告诉你怎么做。例如,在body标记中使用onload事件触发这两个方法,然后不要将代码包装在jquery函数中,只需将其包装在您自己的函数ie function scriptA(){//your code here}中即可。这有帮助吗?哦,你需要使定时器变量成为一个全局变量-将它固定在函数decelleration之外