我想在JavaScript中找出当前有焦点的元素.我一直在搜索DOM,但还没有找到我需要的东西.有没有办法做到这一点,以及如何做到?

我找这个的原因是:

我试着让键像箭头一样,enter在输入元素的表格中导航.Tab键现在起作用了,但是Enter和箭头似乎默认不起作用.我已经设置了键处理部分,但是现在我需要弄清楚如何在事件处理函数中移动焦点.

推荐答案

使用document.activeElement,它在所有主要浏览器中都受支持.

以前,如果您试图找出哪个表单域具有焦点,则无法找到.要在较旧的浏览器中模拟检测,请向所有字段添加"Focus"事件处理程序,并在变量中记录最后聚焦的字段.添加一个"blur"处理程序,以便在发生最后聚焦字段的blur事件时清除变量.

如果需要删除activeElement,可以使用blur;document.activeElement.blur().它会把activeElement改成body.

相关链接:

Javascript相关问答推荐

如何解决(不忽略)reaction详尽的linter规则,而不会在获取数据时导致无限的reender循环

如何让\w token 在此RegEx中表现得不贪婪?

Express.js:使用Passport.js实现基于角色的身份验证时出现太多重定向问题

为什么我达到了时间限制!?LeetCode链接列表循环(已解决,但需要解释!)

在JavaScript中对大型级联数组进行切片的最有效方法?

容器如何更改默认插槽中子项的显示?

如何在不分配整个数组的情况下修改包含数组的行为主体?

我可以使用CSS有效地实现最大宽度=100%和最大高度=100%,而无需父母有明确的/固定的宽度和高度,替代方法吗?

如何在RTK上设置轮询,每24小时

切换时排序对象数组,切换不起作用

在grafana情节,避免冲突的情节和传说

未定义引用错误:未定义&Quot;而不是&Quot;ReferenceError:在初始化&Quot;之前无法访问';a';

如何在ASP.NET项目中使用Google Chart API JavaScript将二次轴线值格式化为百分比

NG/Express API路由处理程序停止工作

将Node.js包发布到GitHub包-错误ENEEDAUTH

第一项杀死下一项,直到数组长度在javascript中等于1

判断函数参数的类型

自动滚动功能在当前图像左侧显示上一张图像的一部分

固定动态、self 调整的优先级队列

需要刷新以查看Mern堆栈应用程序中的更改