0

最近、クリックしたときに要素を一番上に移動する必要があるスクリプトを作成しました。私はonclick関数で次のコードを使用し、何年も使用しています。

this.parentNode.appendChild(this.parentNode.removeChild(this));

スクリプトが機能していなかったので、コードをいじって、修正するためにこれまでに行ったことのないことを試しました。問題はこのコード行にあるのではないかと思いました。実際、それとは何の関係もないことがわかりましたが、いじくり回していると、次のコードが同じ機能を実行しているように見えることに気付きました。

this.parentNode.appendChild(this);

私の知る限り、違いはありません。前者は私にとって「より良い」と感じますが、その理由ははっきりとは言えません。実際の違いはありますか?そうでない場合は、後者の使用を開始し、18文字を保存します:-)

4

1 に答える 1

2

thisの子ではありませんthis
親ノードから子を削除する必要があります。

ただし、既存の親からノードappendChild暗黙的に削除します(要素に複数の親を含めることはできません)。

ノードがすでに存在する場合は、現在の親ノードから削除されてから、新しい親ノードに追加されます。

于 2011-05-27T02:42:20.277 に答える