使用jQuery,如何获得具有插入符号(光标)焦点的输入元素?
换句话说,如何确定输入是否具有插入符号的焦点?
// 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树。
$(':focus')
$('*:focus')
答案是:
document.activeElement
而且,如果您希望使用jQuery对象包装元素:
$(document.activeElement)