如何使用jQuery选择一个关注它的元素

时间:2009-02-05 14:37:27

标签: jquery focus css-selectors

如何选择具有当前焦点的元素?

jQuery中没有:focus过滤器,这就是为什么我们可以使用这样的东西:

$('input:focus').someFunction();

8 个答案:

答案 0 :(得分:153)

$(document.activeElement)将返回当前聚焦的元素,并且比使用伪选择器更快:focus。

来源:http://api.jquery.com/focus-selector/

答案 1 :(得分:123)

alert($("*:focus").attr("id"));

我使用jQuery。

它将提醒元素的id正在聚焦。

我希望它对你有用。

答案 2 :(得分:32)

实际上,最好的方法是为onFocus事件设置处理程序,然后将变量设置为具有焦点的元素的ID。

类似的东西:

var id;

$(":input").focus(function () {
     id = this.id;
});

答案 3 :(得分:5)

你试过吗

$.extend($.expr[':'], {
    focused: function(elem) { return elem.hasFocus; }
});

alert($('input :focused').length);

答案 4 :(得分:5)

如果您使用JQuery,则可以编写selector like this

$.expr[':'].focus = function(a){ return (a == document.activeElement); }

然后,您可以选择当前关注的元素:$(":focus")

不仅表单控件可以具有焦点。任何带有tabindex的html元素都可以集中在现代浏览器中。

答案 5 :(得分:4)

取自当前jQuery版本(1.7)文档的示例:

$(elem).is(":focus");

答案 6 :(得分:1)

对于检查元素是否有焦点。

if ($("...").is(":focus")) {
  ...
}

答案 7 :(得分:0)

以下是CoffeeScript版本。基于jmanrubia的代码:

$.expr[':'].focus = (a) -> a is document.activeElement

您也可以这样称呼$(".:focus")