如何获得与jQuery聚焦元素?如何获得与jQuery聚焦元素?(How to get the fo

2019-06-14 10:29发布

使用jQuery,我怎么能得到具有插入符号的(光标)焦点输入元素?

或者换句话说,如何确定是否输入有插入符号的重点是什么?

Answer 1:

// Get the focused element:
var $focused = $(':focus');

// No jQuery:
var focused = document.activeElement;

// Does the element have focus:
var hasFocus = $('foo').is(':focus');

// No jQuery:
elem === elem.ownerDocument.activeElement;

你应该使用哪一个? 引述jQuery的文档 :

作为与其它伪类选择器(那些带有一个begin“:”),建议先于:焦点与标签名称或一些其他选择器; 否则,通用选择(“*”)是隐含的。 换句话说,裸$(':focus')等同于$('*:focus') 如果您正在寻找当前所关注的元素,$(document.activeElement)将获取它,而无需搜索整个DOM树。

答案是:

document.activeElement

如果你想要一个jQuery对象包装的元素:

$(document.activeElement)


Answer 2:

$( document.activeElement )

将检索它,而无需搜索整个DOM树作为推荐的jQuery的文档



Answer 3:

试试这个:

$(":focus").each(function() {
    alert("Focused Elem_id = "+ this.id );
});


Answer 4:

我测试过的火狐,Chrome,IE9和Safari两种方式。

(1)。 $(document.activeElement)按预期工作在Firefox,Chrome和Safari。

(2)。 $(':focus')按预期工作在Firefox和Safari。

我搬进鼠标输入“姓名”,并按下Enter键键盘上,然后我就先聚焦元素。

(1)。 $(document.activeElement)返回输入:文本:名称如预期在Firefox,Chrome和Safari浏览器,但它返回输入:在IE9 addPassword:提交

(2)。 $(':focus')返回输入文字:名称预计在Firefox和Safari浏览器,但没有在IE浏览器

<form action="">
    <div id="block-1" class="border">
        <h4>block-1</h4>
        <input type="text" value="enter name here" name="name"/>            
        <input type="button" value="Add name" name="addName"/>
    </div>
    <div id="block-2" class="border">
        <h4>block-2</h4>
        <input type="text" value="enter password here" name="password"/>            
        <input type="submit" value="Add password" name="addPassword"/>
    </div>
</form>


Answer 5:

它是如何没有人提到..

document.activeElement.id

我使用IE8,而没有测试它在任何其他浏览器。 就我而言,我使用它,以确保一个字段是最低的4个字符,并集中在行动之前。 一旦你进入第4号,它触发。 现场有“年”的ID。 我在用..

if( $('#year').val().length >= 4 && document.activeElement.id == "year" ) {
    // action here
}


Answer 6:

$(':focus')[0]会给你的实际元素。

$(':focus')会给你元素的数组,通常只有一个元素集中在一个时间,所以这是只有更好,如果你以某种方式有集中的多个元素。



Answer 7:

试试这个::

$(document).on("click",function(){
    alert(event.target);
    });


文章来源: How to get the focused element with jQuery?