programing

jquery $(this).id가 정의되지 않음을 반환합니다.

lastcode 2023. 8. 30. 21:45
반응형

jquery $(this).id가 정의되지 않음을 반환합니다.

페이지에 있는 두 개의 asp 라디오 버튼이 있습니다.updatepanel저는 jQuery로 클릭 이벤트를 작성했습니다.

$(document).ready(function () {
    $(".inputs").click(function () {
         alert($(this).id);
    });
});

그러나 정의되지 않음을 반환합니다.뭐가 문제야?

EDIT:

        alert(" or " + $(this).attr("id"));
alert(this.id);

이 두 줄은 되돌아갑니다.null!

$(this)그리고.this같지 않습니다.첫 번째는 요소에 둘러싸인 jQuery 개체를 나타냅니다.두 번째는 당신의 요소일 뿐입니다.id속성이 요소에 있지만 jQuery 개체에는 없습니다.따라서 다음과 같은 몇 가지 옵션이 옵션은 다음과 같습니다.

  1. 요소의 속성에 직접 액세스합니다.

    this.id

  2. jQuery 개체에서 액세스합니다.

    $(this).attr("id")

  3. jQuery에서 개체를 꺼냅니다.

    $(this).get(0).id; // Or $(this)[0].id

  4. Get theid에서event객체:

    클릭 이벤트와 같이 이벤트가 발생할 때 중요한 정보와 참조 정보를 제공합니다.위의 코드에서 클릭 이벤트가 있습니다.이 이벤트 개체는 다음 두 가지 항목에 대한 참조를 가지고 있습니다.currentTarget그리고.target.

    사용.target당신은 그것을 얻을 수 있습니다.id사건을 일으킨 요소의.currentTarget이벤트가 현재 어떤 요소를 통해 거품이 일고 있는지 간단히 알 수 있습니다.이것들이 항상 같은 것은 아닙니다.

    $("#button").on("click", function(e){ console.log( e.target.id ) });

이 중에서 가장 좋은 옵션은 다음에서 직접 액세스하는 것입니다.this일련의 중첩 이벤트에 참여하지 않는 한, 다음을 사용하는 것이 가장 좋습니다.event각 중첩 이벤트의 개체(모든 고유한 이름 지정)를 상위 또는 하위 범위의 참조 요소로 지정합니다.

또 다른 옵션(참고로):

$(function () {
    $(".inputs").click(function (e) {
         alert(e.target.id);
    });
});

하이야 데모 http://jsfiddle.net/LYTbc/

DOM 요소에 대한 참조이므로 직접 래핑할 수 있습니다.

attrAPI: http://api.jquery.com/attr/

.attr() 메서드는 일치된 집합의 첫 번째 요소에 대한 속성 값만 가져옵니다.

즐거운 시간 보내세요, 건배!

코드

$(document).ready(function () {
    $(".inputs").click(function () {
        alert(this.id);
        
        alert(" or " + $(this).attr("id"));
    });
});​

$(this)DOM 요소를 감싸는 jQuery 개체입니다.this그리고 jQuery 객체에는 없습니다.id특성.당신은 아마도 단지 원할 것을 원할 것입니다.this.id을 얻기 위해id클릭한 요소의 특성입니다.

이 동작을 사용합니다.

$(document).ready(function () {
var a = this.id;

alert (a);
});

이것 : DOM Element $(this) : 돔 Element로 감긴 Jquery 객체, 이 답변 vs $(this)도 확인할 수 있습니다.

특성()처럼 해보십시오.일치하는 요소 집합에서 첫 번째 요소에 대한 특성 값을 가져옵니다.

$(document).ready(function () {
    $(".inputs").click(function () {
         alert(" or " + $(this).attr("id"));

    });
});

시도:

$(document).ready(() => {
    $(".inputs").click((e) => {
         alert($(e.target).attr('id'))
    })
})    

사용할 수 있습니다..attr('id')을 얻기 위해id원소의

$(".fichier").bind('click', function(){      
     alert($(this).attr('id'));
});

언급URL : https://stackoverflow.com/questions/10578566/jquery-this-id-return-undefined

반응형