一尘不染

如何使用jQuery获取焦点元素?

javascript

使用jQuery,如何获得具有插入符号(光标)焦点的输入元素?

换句话说,如何确定输入是否具有插入符号的焦点?


阅读 438

收藏
2020-05-01

共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之前加上标签名称或其他选择器;否则,暗示通用选择器(“
*”)。换句话说,裸露$(':focus')等于$('*:focus')。如果您正在寻找当前关注的元素,则$(document.activeElement)将检索它,而不必搜索整个DOM树。

答案是:

document.activeElement

而且,如果您希望使用jQuery对象包装元素:

$(document.activeElement)
2020-05-01