이벤트를 발생시킨 요소의 ID 가져오기

이벤트를 발생시키는 요소의 ID를 얻을 수 있는 방법이 있습니까?

내 생각은 다음과 같다.

$(document).ready(function() {
$("a").click(function() {
var test = caller.id;
alert(test.val());
}); });
<script type="text/javascript" src="starterkit/jquery.js"></script>
<form class="item" id="aaa">
<input class="title"></input> </form> <form class="item" id="bbb">
<input class="title"></input> </form>

물론 그 변종들은testID를 포함해야 합니다."aaa"이벤트가 첫 번째 형식에서 실행되는 경우,"bbb"이벤트가 두 번째 형식에서 실행되는 경우.



질문에 대한 답변



jQuery의 경우event.target는 항상 이벤트를 트리거한 요소를 참조합니다.event는 함수에 전달되는 파라미터입니다.http://api.jquery.com/category/events/event-object/

$(document).ready(function() {
$("a").click(function(event) {
alert(event.target.id);
}); }); 

또,this동작하지만 jQuery 객체가 아니기 때문에 jQuery 함수를 사용하려면 다음과 같이 참조해야 합니다.$(this)예:

$(document).ready(function() {
$("a").click(function(event) {
// this.append wouldn't work
$(this).append(" Clicked");
}); }); 



참고로, 이것을 사용해 보세요!됐다!

jQuery("classNameofDiv").click(function() {
var contentPanelId = jQuery(this).attr("id");
alert(contentPanelId); }); 



다른 투고에서도 언급되고 있습니다만, 저는 이 점을 설명하겠습니다.

$(event.target).id정의되어 있지 않다

$(event.target)[0].idid Atribute를 지정합니다.

event.target.idid 아트리뷰트도 지정합니다.

this.idid Atribute를 지정합니다.

그리고.

$(this).id정의되어 있지 않습니다.

물론 jQuery 객체와 DOM 객체의 차이는 있습니다.“id”는 DOM 속성이므로 사용하려면 DOM 요소 개체에 있어야 합니다.

(다른 사람이 걸려 넘어졌을지도 모릅니다)




jQuery만 사용할 수 있는 것이 아니라 모든 이벤트에 대해

var target = event.target
event.srcElement; var id = target.id 

어디에event.target에 실패하다event.srcElement(IE용)위의 코드를 명확히 하기 위해 jQuery가 필요하지 않지만 jQuery에서도 동작합니다.




사용할 수 있습니다.(this)함수를 실행한 개체를 참조합니다.

'this'는 콜백 함수(jQuery의 컨텍스트 내)에 있는 경우의 DOM 요소입니다.예를 들어 클릭 방식, 각 방식, 바인드 방식 등으로 호출됩니다.

상세한 것에 대하여는, http://remysharp.com/2007/04/12/jquerys-this-demystified/ 를 참조해 주세요.