如何选择当前具有焦点的元素?
在jQuery中没有:focus
过滤器,因此我们可以使用以下方法:
$('input:focus').someFunction();
如何选择当前具有焦点的元素?
在jQuery中没有:focus
过滤器,因此我们可以使用以下方法:
$('input:focus').someFunction();
$(document.activeElement)
将返回当前聚焦的元素,比使用伪选择器:focus更快。
alert($("*:focus").attr("id"));
我使用jQuery。
它将会弹出正在聚焦的元素的id。
希望这对您有用。
:focus
过滤器的支持,因此这个答案现在是有效的。 - keithjgrant最好的方法是为onFocus事件设置一个处理程序,然后将一个变量设置为具有焦点的元素的ID。
就像这样:
var id;
$(":input").focus(function () {
id = this.id;
});
$.expr[':'].focus = function(a){ return (a == document.activeElement); }
$(":focus")
不仅表单控件可以获得焦点,在现代浏览器中,带有tabindex的任何HTML元素都可以获得焦点。$.extend($.expr[':'], {
focused: function(elem) { return elem.hasFocus; }
});
alert($('input :focused').length);
document.hasFocus()
确实存在,但这样的方法或属性不适用于元素。在 Firefox 和 Chromium 中尝试过。 - akaihola$(elem).is(":focus");
用于检查元素是否具有焦点。
if ($("...").is(":focus")) {
...
}
$(".:focus")
:focus
选择器来判断一个元素是否处于焦点状态。例如,如果你有一个输入框的id为myInput
,你可以使用以下代码来判断该输入框是否获得了焦点:if ($('#myInput').is(':focus')) { // 输入框已经获得了焦点 } else { // 输入框没有获得焦点 }
另外,你也可以使用document.activeElement
来获取当前处于焦点状态的元素,然后判断该元素是否是你想要的输入框。例如:if (document.activeElement.id === 'myInput') { // 输入框已经获得了焦点 } else { // 输入框没有获得焦点 }
- gnarf$(':focus')
在当前文档中查找当前聚焦的元素。 - Alexis Wilke