4
var paragraphElement = document.createElement('p');

paragraphElementDOM にありません。どうすれば削除できますか? removeChildDOM 内にある場合に使用できることはわかっています。paragraphElement私はDOMに追加してから削除する傾向はありません。解決策はありますか?

ありがとうございました。

4

2 に答える 2

6

オブジェクトが参照されなくなった場合、ガベージ コレクションの対象としてマークされます。そのため、有効なコンテキストを離れ、p要素が他の方法で参照されていない場合、ガベージ コレクションは次に実行されるたびにメモリを解放します。ガベージ コレクションがこれをどのように達成するかは、JavaScript エンジンによって異なります。

、または usepのような新しい非参照値を割り当てることもできます。メモリから子を削除するのではなく、DOM からのみ削除しますが、このノードに他の参照がない場合は、ガベージ コレクションのために子を解放することに注意してください。0p = null.removeChild

詳細については、MDN: メモリ管理を確認してください。

于 2012-08-05T15:41:00.377 に答える
1

DOM にない場合は、それへの JS 参照をクリアするだけで、ガベージ コレクターがそれを削除します。これは基本的に、javascript オブジェクトまたは javascript 配列と同じです。それへの参照をクリアすると、ガベージ コレクターによってクリーンアップされます。

したがって、次のように作成する場合:

var paragraphElement = document.createElement('p');

次に、それを取り除くためにあなたがしなければならないことは、その参照が明らかであることです:

var paragraphElement = null;

要素への JavaScript 参照がない場合、ガベージ コレクターは要素を削除します。

于 2012-08-05T16:51:50.587 に答える