jQueryでフォーカスされた要素を取得するにはどうすればいいですか? 質問する

jQueryでフォーカスされた要素を取得するにはどうすればいいですか? 質問する

jQuery を使用して、キャレット (カーソル) のフォーカスを持つ入力要素を取得するにはどうすればよいですか?

言い換えれば、入力にキャレットのフォーカスがあるかどうかを判断するにはどうすればよいでしょうか?

ベストアンサー1

// Get the focused element:
var $focused = $(':focus');

// No jQuery:
var focused = document.activeElement;

// Does the element have focus:
var hasFocus = $('foo').is(':focus');

// No jQuery:
elem === elem.ownerDocument.activeElement;

どちらを使うべきでしょうか?jQuery ドキュメント:

他の疑似クラス セレクタ (「:」で始まるセレクタ) と同様に、:focus の前にタグ名または他のセレクタを置くことをお勧めします。そうしないと、ユニバーサル セレクタ (「*」) が暗黙的に使用されます。つまり、bare は$(':focus')と同等です$('*:focus')。現在フォーカスされている要素を探している場合、$( document.activeElement ) は DOM ツリー全体を検索せずにその要素を取得します。

答えは次のとおりです。

document.activeElement

要素をラップする jQuery オブジェクトが必要な場合は、次のようにします。

$(document.activeElement)

おすすめ記事