如何选择具有当前焦点的元素?
jQuery中没有:focus
过滤器,这就是为什么我们可以使用这样的东西:
$('input:focus').someFunction();
答案 0 :(得分:153)
$(document.activeElement)
将返回当前聚焦的元素,并且比使用伪选择器更快:focus。
答案 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")