如何选择具有当前焦点的元素?
jQuery中没有:focus
过滤器,这就是为什么我们可以使用这样的东西:
$('input:focus').someFunction();
如何选择具有当前焦点的元素?
jQuery中没有:focus
过滤器,这就是为什么我们可以使用这样的东西:
$('input:focus').someFunction();
$(document.activeElement)
将返回当前聚焦的元素,并且比使用伪选择器:focus 更快。
alert($("*:focus").attr("id"));
我使用 jQuery。
它将提醒元素的 id 正在聚焦。
我希望它对你有用。
最好的方法是为 onFocus 事件设置一个处理程序,然后将一个变量设置为具有焦点的元素的 ID。
像这样的东西:
var id;
$(":input").focus(function () {
id = this.id;
});
你有没有尝试过
$.extend($.expr[':'], {
focused: function(elem) { return elem.hasFocus; }
});
alert($('input :focused').length);
如果你使用 JQuery,你可以写一个这样的选择器:
$.expr[':'].focus = function(a){ return (a == document.activeElement); }
然后,您可以选择当前聚焦的元素:$(":focus")
不仅表单控件可以有焦点。任何带有 tabindex 的 html 元素都可以在现代浏览器中聚焦。
从当前 jQuery 版本 (1.7) 文档的示例中提取:
$(elem).is(":focus");
检查元素是否有焦点。
if ($("...").is(":focus")) {
...
}
这是它的 CoffeeScript 版本。基于 jmanrubia 的代码:
$.expr[':'].focus = (a) ->
a is document.activeElement
你也可以这样称呼它$(".:focus")