如何使用 jQuery 选择焦点元素

问题描述 投票:0回答:8

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

jQuery 中没有

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

$('input:focus').someFunction();
jquery focus css-selectors
8个回答
153
投票

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

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


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

我使用 jQuery。

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

希望对你有用。


32
投票

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

类似这样的:

var id;

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

5
投票

你尝试过吗

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

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

5
投票

如果你使用JQuery,你可以写一个像这样的选择器

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

然后您可以选择当前聚焦的元素:

$(":focus")

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


4
投票

Lorem ipsum dolor sat amet,consectetur adipiscing elit。 Praesent quis aliquam Massa。 Vivamus id ullamcorper odio,nec placerat urna。 Nam vitae ante efficitur, varius sapien a, sodales nibh. 《Interdum etmalesuada》在福西布斯 (faucibus) 中以“ac ante ipsum primis”而闻名。 Donec hendrerit lacus ac enim lacinia lacinia。 Etiam turpis ligula, ultricies sed risus in, egestas consequat augue。 Vivamus pretium、lectus ac finibus tempus、purus augue vulputate Tellus、nec venenatis mi arcu vitae ante。 Pellentesque venenatis Tellus sed Fermentum pellentesque。暂停效力。在有效之前非 eleifend ultrices。前庭爱欲 urna,eleifend sed sagittis 坐 amet,suscipit ac arcu。 Morbi ante risus, iaculis quis rhoncus vel, interdum id ipsum。 Etiam 在 felis nec sem dignissim 前庭。


1
投票

用于检查元素是否具有焦点。

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

0
投票

这是它的 CoffeeScript 版本。基于 jmanrubia 的代码:


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

你也可以这样称呼它

$(".:focus")

© www.soinside.com 2019 - 2024. All rights reserved.