Javascript 获取被聚焦的元素的类型

Javascript 获取被聚焦的元素的类型,javascript,jquery,Javascript,Jquery,我正在构建一个包含各种锚和表单元素的页面,这些元素可以被关注,我想知道如果有什么东西被关注,我如何才能获得当前被关注的元素。我认为在jQuery中实现这一点的一种方法是使用。即(:focus)。我正在寻找一个jQuery或vanilla js解决方案——只要能工作就行了 以下是我在psuedo代码中尝试执行的操作: if (something is focused){ get the tag name of that which is currently focused and stor

我正在构建一个包含各种锚和表单元素的页面,这些元素可以被关注,我想知道如果有什么东西被关注,我如何才能获得当前被关注的元素。我认为在jQuery中实现这一点的一种方法是使用
。即(:focus)
。我正在寻找一个jQuery或vanilla js解决方案——只要能工作就行了

以下是我在psuedo代码中尝试执行的操作:

if (something is focused){
    get the tag name of that which is currently focused and store that in a variable as a string.
}
else {
    alert("nothing is being focused on");
}
此外,如果您能回答此问题,请执行以下操作:
事情不是一直都很集中吗?这意味着当代码或用户没有或没有聚焦特定元素时,文档/主体才被聚焦?

假设您想用jQuery实现这一点,您要寻找的是jQuery
.prop()
方法
$(someElement).prop('tagName')
将返回
someElement
的标记名


举个例子:

您可以使用以下内容:

$('*:focus')

您可以设置关注的元素列表,或使用通配符选择器:

$(function () {
    var focusedEls = [];
    $('*:visible').bind('focus', function (e) {
        focusedEls.push(e.target);
        console.log( $.unique(focusedEls) );
    });
});


有很多方法可以存储聚焦的元素,我只是选择了一个数组。另外,我不确定您是否想跟踪时间每个元素都被关注,但是如果您想跟踪,只需放弃查看完整列表即可

@ultranaut谢谢你指出这一点。这个问题有我想要的答案。