이벤트를 발생시키는 요소의 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>
물론 그 변종들은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 Atribute를 지정합니다.
event.target.id
id 아트리뷰트도 지정합니다.
this.id
id 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/ 를 참조해 주세요.