例えば:
<div class='blah'>
<script>
$('.blah').remove();
</script>
</div>
編集:
さて、私はこれに多くの反対票を投じました。これが良いアイデアかどうかは知りたいのですが、それは主観的なものなので、JavaScriptはそれ自体を削除する関数をどのように処理するのでしょうか。
例えば:
<div class='blah'>
<script>
$('.blah').remove();
</script>
</div>
編集:
さて、私はこれに多くの反対票を投じました。これが良いアイデアかどうかは知りたいのですが、それは主観的なものなので、JavaScriptはそれ自体を削除する関数をどのように処理するのでしょうか。
はい、できます-> http://jsbin.com/ososuh/1
さらに、後で呼び出す関数を定義できます。これは、メモリへの解析時間に追加され、後で呼び出すことができると思います。これまで試したことはありませんが、かなり面白いことを認めなければなりません;-)
まず第一に、JavaScriptをこのようにインラインに配置することは絶対にしないでください。これは悪い習慣であり、Webの最適化にはひどいものです。第二に、確かに、なぜですか?
何らかの方法で要素にバインドされている場合でも、実際のスクリプト関数自体は削除されませんが、HTMLを削除できます。
$('.blah').bind('click', function () {
$(this).remove();
}
はい。その後、関数が未定義になるわけではありませんが、JavaScriptからDOMを自由に変更できます。
ブラウザはページが読み込まれるたびにJavaScriptを解析しますか?の回答をご覧ください。
例えば:
Chrome:V8エンジン
V8にはコンパイルキャッシュがあります。これは、最大5つのガベージコレクションのソースのハッシュを使用してコンパイルされたJavaScriptを保存します。これは、2つの同一のソースコードが、それらがどのように含まれているかに関係なく、メモリ内のキャッシュエントリを共有することを意味します。ページがリロードされるときに、このキャッシュはクリアされません。
したがって、ChromeでF5キーを押すと、(スクリプトタグコンテンツのテキストのハッシュを介して)このJavaScriptコードがすでに解析されてネイティブコードにコンパイルされていることが検出されます。だからそれを実行するだけです。
このすでにコンパイルされたJSコードは、(メモリの異なる部分で)DOMから分離されているため、それ自体を表すDOM要素も操作できます。少なくともそれが私がその働きを理解する方法です。