[javascript] 이벤트를 발생시킨 요소의 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>

물론 var test가 id를 포함해야한다는 것을 제외하고 "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].id id 속성을 제공합니다.

event.target.id 또한 id 속성을 제공합니다.

this.id id 속성을 제공합니다.

$(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'A는 DOM의 는 방법 (jQuery를 컨텍스트에서), 예를 들면, 클릭에 의해 호출되는 각각 결합 등 콜백 함수의 내부에있을 때 소자.

자세한 내용은 다음을 참조하십시오. http://remysharp.com/2007/04/12/jquerys-this-demystified/


답변

데이터베이스에서 동적으로 테이블을 생성하고 JSON으로 데이터를 수신하여 테이블에 넣습니다. 모든 테이블 행은 고유 한을 가지며 ID추가 조치에 필요하므로 DOM이 변경되면 다른 접근법이 필요합니다.

$("table").delegate("tr", "click", function() {
   var id=$(this).attr('id');
   alert("ID:"+id);
});


답변

이벤트 속성 에서 이벤트 를 발생시킨 요소

event.currentTarget

이벤트 핸들러가 설정된 DOM 노드 객체를 얻습니다 .


버블 링 프로세스를 시작한 가장 중첩 된 노드

event.target

이벤트 객체는 항상 이벤트 핸들러의 첫 번째 속성입니다. 예 :

document.querySelector("someSelector").addEventListener(function(event){

 console.log(event.target);
 console.log(event.currentTarget);

});

이벤트 위임에 대한 자세한 내용 http://maciejsikora.com/standard-events-vs-event-delegation/ 에서 읽을 수 있습니다 .