Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript函数可以删除包含它的html元素吗?_Javascript_Jquery_Html - Fatal编程技术网

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
定义动态重新创建一个新脚本怎么样?如果重新定义它,它将保留新定义。只要它影响相同的范围,它从何而来并不重要。