如何使用jquery在页面上找到焦点元素?

Bdf*_*dfy 0 jquery

我想尝试这个例子,但它不起作用.为什么?

<div id="test"></div>
<script>
    $('#test').focus();
    alert($("*:focus").attr("id"))
</script> 
Run Code Online (Sandbox Code Playgroud)

And*_*y E 7

请注意,正如其他人所提到的,默认情况下并非所有元素都可以聚焦.您必须将tabindex属性添加到它们以使这些元素可聚焦:

<div id="test" tabindex="0"></div>
<script>
    $('#test').focus();
    alert($("*:focus").attr("id"))
</script> 
Run Code Online (Sandbox Code Playgroud)

tabindex应用该属性后,您的原始代码将起作用.见这个工作示例.


在纯JavaScript中,document.activeElement应该返回focussed元素,如果有的话.它还可以返回一个活动的元素,但不会聚焦.处理它的最好方法是检查元素是否被聚焦:

function getFocussedElement() {
    var el;
    if ((el = document.activeElement) && el != document.body)
        return el;
    else
        return null;
}
Run Code Online (Sandbox Code Playgroud)

值得一提的是,这种方法应该是比选择查询.请注意,这activeElement不是任何标准的一部分,但所有主流浏览器都支持它.