<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})
답변
id
html의 속성입니다 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()
두 개의 매개 변수를 지정하여 속성 값을 변경하거나 하나를 지정하여 값을 얻는 데 사용할 수 있습니다 .
답변
특정 요소에 대해 이벤트 (이 경우 click 이벤트)가 시작되면 클래스 선택기로 요소의 ID를 가져 오려면 다음을 수행하십시오.
$('.your-selector').click(function(){
var id = $(this).attr('id');
});