JavaScript での要素の削除の簡素化
要素を削除するための JavaScript のメソッドは、親ノードを見つけてから要素を手動で削除することを必要とします。面倒。ここで疑問が生じます: なぜ JavaScript はこのように設計されているのでしょうか?
技術的な理由があるかもしれませんが、解決策の 1 つはネイティブ DOM 関数を拡張することです。このアプローチはすべてのケースに最適なわけではありませんが、最新のブラウザーでは適切に機能します。
Polyfill メソッド
次のコードを使用すると、Element および NodeList プロトタイプを拡張できます。削除メソッドを含めるには:
Element.prototype.remove = function() { this.parentElement.removeChild(this); } NodeList.prototype.remove = HTMLCollection.prototype.remove = function() { for(var i = this.length - 1; i >= 0; i--) { if(this[i] && this[i].parentElement) { this[i].parentElement.removeChild(this[i]); } } }
この拡張機能を使用すると、要素の削除が簡単になります例:
document.getElementById("my-element").remove();
または:
document.getElementsByClassName("my-elements").remove();
このソリューションは最新のブラウザーでは効果的に機能しますが、Internet Explorer 7 以前はサポートされていません。
最新のブラウザ ソリューション
幸いなことに、最新のブラウザ (IE を除く) には、 node.remove() 関数を導入しました。この関数を使用すると、ポリフィルを必要とせずに要素を直接削除できます。
node.remove() を使用するには:
document.getElementById("my-element").remove();
または:
[...document.getElementsByClassName("my-elements")].map(n => n && n.remove());
このアプローチは、Chrome、Firefox、Edge、Safari を含むすべての主要なブラウザでサポートされています。
以上がJavaScript 要素の削除はなぜ非常に複雑なのでしょうか?また、どうすれば簡素化できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。