假设我有以下div,它在满足某个条件后获得焦点:
<div id="myID" tabindex="-1" >Some Text</div>
我想创建一个处理程序,检查该div是否有焦点,当它的计算结果为true/focus在div上时,执行一些操作(在下面的示例中,打印一个控制台日志):
if (document.getElementById('#myID').hasFocus()) {
$(document).keydown(function(event) {
if (event.which === 40) {
console.log('keydown pressed')
}
});
}
我在控制台中收到一条错误消息,该消息显示:
TypeError:无法读取属性“Has Focus”为null
知道我做错了什么吗?也许就像我传递div ID的方式?
使用document.activeelement
应该管用。
p.sgetElementById(“myId”)
notgetElementById(“#myId”)
将document.activeelement
与要检查焦点的元素进行比较。如果它们相同,则元素被聚焦;否则就不是了。
// dummy element
var dummyEl = document.getElementById('myID');
// check for focus
var isFocused = (document.activeElement === dummyEl);
HasFocus
是文档
的一部分;对于DOM元素没有这样的方法。
而且,document.getElementById
在myid
的开头没有使用#
。更改此:
var dummyEl = document.getElementById('#myID');
对此:
var dummyEl = document.getElementById('myID');
如果希望使用CSS查询,则可以使用QuerySelector
(和QuerySelectorAll
)。
问题内容: 有没有办法断言某个元素(例如输入或链接)具有键盘焦点?我在Selenium中使用Codeception。在http://codeception.com/docs/modules/WebDriver上找不到任何内容 问题答案: 一个可靠的消息来源告诉我这可行: 测试愉快!
问题内容: 我期待的是类似WebElement.isfocus()的东西,…确实很简单,但是我发现的唯一方法是使用 伪类。 这真的是不常见的任务,例如找不到大量信息吗? 我知道这个SO主题,但是距那时已经快两年了。最新版本中没有新内容吗? 您知道一些解决方法吗? 问题答案: 还有另一个主题涉及这个问题:使用SeleniumWebdriver测试元素是否为焦点 基本上,代码将是
(我已经删除了上一个,所以我想你可以在编辑中找到它) 编辑 所以按照bad_coder在评论中告诉的以及他分享的链接中的大多数答案,我点击了“选项显示所有”,我得到了这个 1) 这里唯一有意义的是点击“”按钮,所以我点击了它 2) 现在我应该用路径替换突出显示的部分(换句话说,我在cmd中键入“where python”后得到的路径) 3) 这就是我发现的。那么我应该在突出显示的部分复制并粘贴哪一
问题内容: 我想用JavaScript找出当前关注的元素。我一直在浏览DOM,但尚未找到我需要的东西。有没有办法做到这一点,怎么做? 我寻找这个的原因: 我正在尝试制作箭头之类的键并浏览输入元素表。选项卡现在可以使用,但是可以输入,默认情况下,箭头没有显示。我已经设置了关键处理部分,但是现在我需要弄清楚如何在事件处理功能中转移焦点。 问题答案: 使用,所有主要浏览器均支持。 以前,如果您试图找出哪
问题内容: 我有以下指令来自动聚焦字段: 我将如何对此进行单元测试?我尝试了以下选择器之类的几种方法,但是它们都返回错误或false: 我的单元测试设置如下: 问题答案: 我想通了,实际上这很明显。 我的问题有两个: 我没有调用超时刷新功能,所以没有发生超时,并且 我试图查看元素的focus属性,而仅关注focus()函数的调用更像是单元测试。focus属性确实属于e2e测试领域。
问题内容: 我不知道如何确定存在于json数组中的元素是否为null。要检查jsonObject本身是否为null,只需使用: 但是,当对象是一个数组并且我想检查该数组的元素之一是否为null时,则不起作用: 数组的元素上也没有isNull方法。如何检查jsonarray中的值是否为null?知道我正在从javascript传递空对象可能会有所帮助。从javascript以json格式传递null