javascript函数可以删除包含它的html元素吗?
例如:javascript函数可以删除包含它的html元素吗?,javascript,jquery,html,Javascript,Jquery,Html,例如: <div class='blah'> <script> $('.blah').remove(); </script> </div> $('.blah').remove(); 编辑: 好吧,我对此投了很多反对票。我想知道这是否是一个好主意,但由于这是主观的,让我问一下:javascript如何处理删除自身的函数?是的。对于函数,这并不意味着之后它们将不被定义,但是您可以非常自由地从JavaScript修改
<div class='blah'>
<script>
$('.blah').remove();
</script>
</div>
$('.blah').remove();
编辑:
好吧,我对此投了很多反对票。我想知道这是否是一个好主意,但由于这是主观的,让我问一下:javascript如何处理删除自身的函数?是的。对于函数,这并不意味着之后它们将不被定义,但是您可以非常自由地从JavaScript修改DOM。首先,您不应该像这样将JavaScript内联放置。这是一种糟糕的做法,对web优化来说是可怕的。其次,当然,为什么不呢 如果以某种方式绑定到元素,仍然可以删除HTML,尽管它不会删除实际的脚本函数本身
$('.blah').bind('click', function () {
$(this).remove();
}
是的,你可以->
此外,您还可以定义函数,稍后将调用该函数。我想它是在解析内存时添加的,以后可以调用它。以前没试过,但必须承认它很有趣;-) 看看下面的答案
例如:
<div class='blah'>
<script>
$('.blah').remove();
</script>
</div>
铬合金:V8发动机
V8有一个编译缓存。这将使用
最多5次垃圾收集的源哈希。这意味着
两段相同的源代码将共享内存中的缓存项
不管他们是如何被包括在内的。此缓存在运行时不会被清除
页面被重新加载
因此,如果您在Chrome中点击F5,它将检测到(通过对脚本标记内容的文本进行哈希)它已经将这段JavaScript代码解析并编译为本机代码。所以它只会执行它
由于这段已经编译好的JS代码与DOM分离(在内存的不同部分),因此它还可以操作表示自身的DOM元素。至少我是这样理解这项工作的。你试过了吗?它工作了吗?
html
元素不包含函数
我担心整个宇宙都会崩溃。这似乎是你可以试着去发现的。你刚刚让我大吃一惊,先生,那么随后删除的
元素中的代码仍然可以在页面的脚本上下文中使用?使用函数foo
删除
,然后使用不同的foo
定义动态重新创建一个新脚本怎么样?如果重新定义它,它将保留新定义。只要它影响相同的范围,它从何而来并不重要。