-3

例如:

<div class='blah'>
    <script>
        $('.blah').remove();
    </script>
</div>

编辑:

好吧,我对此投了很多反对票。我宁愿知道这是否是一个好主意,但既然这是主观的,让我问:javascript如何处理一个删除自身的函数?

4

4 回答 4

3

是的,你可以 -> http://jsbin.com/ososuh/1

更重要的是,您可以定义函数,稍后您将调用该函数。我想它是在解析时间到内存时添加的,以后可以调用它。以前没有尝试过,但必须承认这很有趣;-)

于 2013-03-12T21:27:14.177 回答
1

首先,你永远不应该像这样将你的 javascript 内联。对于网络优化来说,这是不好的做法和糟糕的做法。其次,当然,为什么不呢?

如果您以某种方式绑定到元素,您仍然可以删除 HTML,尽管它不会删除实际的脚本函数本身。

$('.blah').bind('click', function () {
    $(this).remove();
}
于 2013-03-12T21:24:20.043 回答
0

查看Do browsers parse javascript on each page load 的答案?

例如:

铬:V8 引擎

V8 有一个编译缓存。这使用源的哈希存储已编译的 JavaScript,最多可用于 5 个垃圾收集。这意味着两个相同的源代码将在内存中共享一个缓存条目,无论它们是如何包含的。重新加载页面时不会清除此缓存。

因此,如果您在 Chrome 中按 F5,它将检测(通过脚本标记内容的文本散列)它已经将这段 JavaScript 代码解析并编译为本机代码。所以它只会执行它。

由于这段已经编译的 JS 代码与 DOM 分离(在内存的不同部分),它还可以操作代表自身的 DOM 元素。至少我是这样理解工作的。

于 2013-03-12T21:52:17.653 回答
0

是的。如果函数在此之后并不意味着它们将是未定义的,但是您可以非常自由地从 JavaScript 修改 DOM。

于 2013-03-12T21:23:35.663 回答