Pregunta ¿Cómo puedo obtener la identificación de un elemento usando jQuery?


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

¿Por qué no funciona lo anterior y cómo debería hacerlo?


1106
2017-07-13 17:11


origen


Respuestas:


La manera jQuery:

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

En tu ejemplo:

<div id="test"></div>

$(document).ready(function() {
    alert($('#test').attr('id'));
}); 

O a través del DOM:

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

o incluso :

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

y la razón detrás del uso de $('#test').get(0) en JQuery o incluso $('#test')[0] es eso $('#test') es un selector JQuery y devuelve una matriz () de resultados ni un solo elemento por su funcionalidad predeterminada

una alternativa para el selector DOM en jquery es

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

que es diferente de .attr() y $('#test').prop('foo') agarra el DOM especificado foo propiedad, mientras $('#test').attr('foo') agarra el HTML especificado foo atributo y puedes encontrar más detalles sobre las diferencias aquí.


1810
2017-07-13 17:12



$('selector').attr('id') devolverá la identificación del primer elemento coincidente. Referencia.

Si su conjunto combinado contiene más de un elemento, puede usar el convencional .each  iterador para devolver una matriz que contiene cada uno de los ids:

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

O bien, si está dispuesto a ponerse un poco más atrevido, puede evitar el envoltorio y usar el .map  atajo.

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

70
2017-07-13 17:13



id es una propiedad de un html Element. Sin embargo, cuando escribes $("#something"), devuelve un objeto jQuery que envuelve los elementos DOM correspondientes. Para recuperar el primer elemento DOM coincidente, llame get(0)

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

En este elemento nativo, puede invocar id o cualquier otra propiedad o función DOM nativa.

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

Esa es la razón por qué id no está funcionando en tu código

Alternativamente, use jQuery's attr método como otras respuestas sugieren para obtener el id atributo del primer elemento coincidente.

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

37
2017-07-13 17:16



Las respuestas anteriores son geniales, pero a medida que evoluciona jquery ... también puedes hacer:

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

24
2017-12-05 16:46



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

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

Se requiere un código de verificación por supuesto, ¡pero fácil de implementar!


20
2017-09-25 13:15



.id no es una función jquery válida. Necesitas usar el .attr() función para acceder a los atributos que posee un elemento. Puedes usar .attr() para cambiar un valor de atributo especificando dos parámetros u obtener el valor especificando uno.

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


10
2017-07-13 17:17



Si desea obtener una ID de un elemento, digamos por un selector de clase, cuando un evento (en este caso, haga clic en evento) fue activado en ese elemento específico, entonces lo siguiente hará el trabajo:

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

7
2018-05-29 10:35



$('#test') devuelve un objeto jQuery, por lo que no puede usar simplemente object.id para obtener su Id

necesitas usar $('#test').attr('id'), que devuelve su requerido ID del elemento

Esto también se puede hacer de la siguiente manera

$('#test').get(0).id que es igual a document.getElementById('test').id


5
2017-07-13 17:16