13
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

.remove() と.empty()の違い

Last updated at Posted at 2015-03-04

■違い

.remove():指定したDOM要素自体を削除する。
.empty() :指定したDOM要素の”子要素のみ”を削除する。

■失敗例

他の人が書いたコードで、ダイアログで表示させた要素の閉じるボタンをクリックしたときに、要素は”見た目的には”消えるのだけど、その裏側のボタンが押せなくなるバグが出ていた。

jsをよく見ると、要素を消す時に.empty()を使っていた。
.empty()だと見た目上消えていても、装飾されていないdivなどで見えない要素が残っていると裏側の要素の操作ができなくなったり、もう一度ダイアログ表示しようとすると無限に生成されたり、表示がおかしくなったりする。(もちろん使い方次第ですが。)

jqueryで要素を消す際は基本.remove() を使ったほうがすっきるすると思う。

■参考記事

「jQuery removeとemptyによるDOM要素削除方法の違い」
http://kojikoji75.hatenablog.com/entry/2014/05/20/214503

13
17
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?