获取焦点元素的类型

时间:2013-03-20 03:20:52

标签: javascript jquery

我正在构建一个包含各种锚点和表单元素的页面,这些页面可以聚焦,我想知道如果能够集中注意力,我如何能够获得当前关注的元素。我认为在jQuery中实现它的一种方法是使用.is(:focus)。我正在寻找一个jQuery或vanilla js解决方案 - 只是有用的东西。

以下是我在psuedo-code中尝试做的事情:

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");
}

此外,如果您可以回答这个问题,请执行以下操作: 是不是始终关注的东西?这意味着当代码或用户完成任何特定元素之前没有特定元素时,文档/主体是否会被聚焦?

3 个答案:

答案 0 :(得分:0)

假设你想用jQuery做这个,你正在寻找的是jQuery .prop()方法。 $(someElement).prop('tagName')会返回标记名someElement

只是将它们放在一起,例如:http://jsfiddle.net/kZbYv/1/

答案 1 :(得分:0)

您可以使用以下内容:

$('*:focus')

答案 2 :(得分:0)

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

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

Fiddle: http://jsfiddle.net/xfwy2/

有很多方法可以存储聚焦的元素,我只选择了一个数组。此外,我不确定您是否要跟踪每个元素的重点,但如果您这样做,只需抛弃$.unique()获取完整列表。