Jak mogę uzyskać ID elementu używając jQuery?

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

Dlaczego powyższe nie działa i jak mam to zrobić?

Rozwiązanie

Sposób jQuery:

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

W twoim przykładzie:

$(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>

Lub poprzez DOM:

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

lub nawet :

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

a powodem użycia $('#test').get(0) w JQuery lub nawet $('#test')[0] jest to, że $('#test') jest selektorem JQuery i zwraca tablicę() wyników, a nie pojedynczy element przez swoją domyślną funkcjonalność

alternatywą dla selektora DOM w jquery jest

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

który różni się od .attr() i $('#test').prop('foo') łapie określoną właściwość DOM foo, podczas gdy $('#test').attr('foo') łapie określony atrybut HTML foo i możesz znaleźć więcej szczegółów na temat różnic tutaj.

Komentarze (20)

$('selector').attr('id') zwróci id pierwszego dopasowanego elementu. Odnośnik.

Jeśli twój dopasowany zestaw zawiera więcej niż jeden element, możesz użyć konwencjonalnego .each iterator, aby zwrócić tablicę zawierającą każdy z id:

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

Lub, jeśli chcesz się trochę bardziej postarać, możesz uniknąć wrappera i użyć .map skrót.

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

$('#test') zwraca obiekt jQuery, więc nie można'użyć po prostu object.id, aby uzyskać jego Id.

musisz użyć $('#test').attr('id'), który zwraca wymagane ID elementu

Można to również zrobić w następujący sposób ,

$('#test').get(0).id, który jest równy document.getElementById('test').id.

Komentarze (1)