如何使用jQuery获得重点元素?

2022-08-29 23:33:29

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

答案是:

document.activeElement

如果你想要一个jQuery对象包装元素:

$(document.activeElement)

答案 2
$( document.activeElement )

将检索它,而无需按照jQuery文档中的建议搜索整个DOM树