[jquery] jQuery를 사용하여 요소의 ID를 어떻게 얻을 수 있습니까?

<div id="test"></div>
<script>
  $(document).ready(function() {
    alert($('#test').id);
  });  
</script>

위의 방법이 작동하지 않는 이유는 무엇이며 어떻게해야합니까?



답변

jQuery 방법 :

$('#test').attr('id')

귀하의 예에서 :

$(document).ready(function() {
  console.log($('#test').attr('id'));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="test"></div>

또는 DOM을 통해 :

$('#test').get(0).id;

또는 :

$('#test')[0].id;

과의 사용 뒤에 이유 $('#test').get(0)JQuery와 또는 심지어 $('#test')[0]$('#test')JQuery와 선택과 결과의 () 배열을 반환 기본 기능으로 하나의 요소를하지

jquery에서 DOM 선택기의 대안은 다음과 같습니다.

$('#test').prop('id')

다른 어떤 .attr()$('#test').prop('foo')지정된 DOM을 잡고 foo있는 동안, 재산을 $('#test').attr('foo')횡령 지정된 HTML의 foo이 차이점에 대한 자세한 내용은 찾을 수 있습니다 속성과 여기를 .


답변

$('selector').attr('id')일치하는 첫 번째 요소의 id를 반환합니다. 참조 .

일치하는 세트에 둘 이상의 요소가 포함 된 경우 기존 .each 반복기 를 사용하여 각 ID를 포함하는 배열을 리턴 할 수 있습니다 .

var retval = []
$('selector').each(function(){
  retval.push($(this).attr('id'))
})
return retval

또는 조금 더 만족 스러우면 래퍼를 피하고 .map 바로 가기를 사용할 수 있습니다 .

return $('.selector').map(function(index,dom){return dom.id})


답변

idhtml의 속성입니다 Element. $("#something")그러나을 쓸 때 일치하는 DOM 요소를 래핑하는 jQuery 객체를 반환합니다. 첫 번째 일치하는 DOM 요소를 다시 얻으려면get(0)

$("#test").get(0)

이 기본 요소에서 id 또는 다른 기본 DOM 속성 또는 함수를 호출 할 수 있습니다.

$("#test").get(0).id

그것이 id코드에서 작동하지 않는 이유 입니다.

또는 jQuery의 attr메소드를 사용 id하여 첫 번째 일치하는 요소 의 속성 을 얻으려면 다른 답변에서 제안하십시오 .

$("#test").attr("id")


답변

위의 답변은 훌륭하지만 jquery가 발전함에 따라 다음과 같이 할 수도 있습니다.

var myId = $("#test").prop("id");


답변

$.fn.extend({
    id : function() {
        return this.attr('id');
    }
});

alert( $('#element').id() );

물론 일부 검사 코드가 필요하지만 쉽게 구현됩니다!


답변

.id유효한 jquery 함수가 아닙니다. .attr()요소가 소유 한 속성에 액세스 하려면 함수 를 사용해야합니다 . .attr()두 개의 매개 변수를 지정하여 속성 값을 변경하거나 하나를 지정하여 값을 얻는 데 사용할 수 있습니다 .

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


답변

특정 요소에 대해 이벤트 (이 경우 click 이벤트)가 시작되면 클래스 선택기로 요소의 ID를 가져 오려면 다음을 수행하십시오.

 $('.your-selector').click(function(){
       var id = $(this).attr('id');
 });