[javascript] jQuery로 초점을 맞춘 요소를 얻는 방법?
jQuery를 사용하여 캐럿 (커서) 포커스가있는 입력 요소를 어떻게 얻을 수 있습니까?
즉, 입력에 캐럿의 초점이 있는지 확인하는 방법은 무엇입니까?
답변
// 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 문서를 인용 :
다른 의사 클래스 선택기 ( “:”로 시작하는 선택기)와 마찬가지로 태그 이름이나 다른 선택기가있는 focus를 사용하는 것이 좋습니다. 그렇지 않으면 범용 선택기 ( “*”)가 내포됩니다. 즉, 베어는와
$(':focus')
같습니다$('*:focus')
. 현재 초점을 맞춘 요소를 찾고 있다면 $ (document.activeElement)는 전체 DOM 트리를 검색하지 않고도 요소를 검색합니다.
정답은:
document.activeElement
그리고 요소를 래핑하는 jQuery 객체를 원한다면 :
$(document.activeElement)
답변
$( document.activeElement )
jQuery 문서 에서 권장하는대로 전체 DOM 트리를 검색하지 않고도 검색합니다.
답변
Firefox, Chrome, IE9 및 Safari에서 두 가지 방법을 테스트했습니다.
(1). $(document.activeElement)
Firefox, Chrome 및 Safari에서 예상대로 작동합니다.
(2). $(':focus')
Firefox 및 Safari에서 예상대로 작동합니다.
마우스로 이동하여 ‘name’을 입력하고 키보드에서 Enter 키를 누른 다음 초점을 맞춘 요소를 얻으려고했습니다.
(1). $(document.activeElement)
Firefox, Chrome 및 Safari에서 예상대로 input : text : name을 반환하지만 IE9에서는 input : submit : addPassword를 반환합니다.
(2). $(':focus')
Firefox 및 Safari에서 예상대로 input : text : name을 반환하지만 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>
답변
이 시도:
$(":focus").each(function() {
alert("Focused Elem_id = "+ this.id );
});
답변
아무도 언급하지 않았습니다 ..
document.activeElement.id
IE8을 사용하고 있으며 다른 브라우저에서 테스트하지 않았습니다. 필자의 경우 필드를 최소 4 자 이상으로 설정하고 동작 전에 초점을 맞추는 데 사용합니다. 네 번째 숫자를 입력하면 트리거됩니다. 필드의 ID는 ‘년’입니다. 사용 중입니다 ..
if( $('#year').val().length >= 4 && document.activeElement.id == "year" ) {
// action here
}
답변
$(':focus')[0]
실제 요소를 제공합니다.
$(':focus')
요소 배열을 제공합니다. 일반적으로 한 번에 하나의 요소 만 초점을 맞추므로 여러 요소에 초점을 맞춘 경우에만 더 좋습니다.
답변
이 시도::
$(document).on("click",function(){
alert(event.target);
});