¿Cómo puedo obtener el nombre del elemento con jQuery?

130

¿Cómo puedo obtener la propiedad de nombre del elemento HTML con jQuery?

Poonam Bhatt
fuente
un poco de HTML o incluso un poco más de información sobre el elemento del que desea el nombre nos ayudaría a darle una respuesta más específica.
Patricia
44
Use .prop()para obtener propiedades y .attr()para obtener atributos. No lo use .attr()para obtener una propiedad como todos sugieren. Estamos trabajando con JavaScript aquí, no con el marcado HTML.
11
Esto debe ser reabierto. Asker debería ser recompensado por llegar al punto y no anteponer algo como "Tengo este sitio web donde ..."
cantera
@ cantera25: gracias por señalar esto ...
Poonam Bhatt

Respuestas:

221

Deberías usar attr('name')así

 $('#yourid').attr('name')

debe usar un selector de ID, si usa un selector de clase, encuentra problemas porque se devuelve una colección

Nicola Peluchetti
fuente
8
Solo obtengo valores indefinidos cuando uso esto o .prop ()
HorusKol
1
¿Hay alguna razón para preferir attr ('nombre') sobre prop ('nombre')?
dallin
Utilicé $(this).attr('name');un selector de clase $('.jobSelect').change(function() {y no encontré problemas.
Ömer Un
14

Para leer una propiedad de un objeto que usa .propertyNameo["propertyName"] notación.

Esto no es diferente para los elementos.

var name = $('#item')[0].name;
var name = $('#item')[0]["name"];

Si específicamente quieres usar jQuerymétodos, entonces usarías el .prop()método.

var name = $('#item').prop('name');

Tenga en cuenta que los atributos y propiedades no son necesariamente los mismos.

usuario1106925
fuente
Creo que prop()es para propiedades booleanas como checkedno para atributos
Nicola Peluchetti
2
@NicolaPeluchetti: .prop()es para cualquier propiedad en el elemento DOM. .attr()Es un método muy confuso que ha cambiado su comportamiento entre diferentes versiones, a veces dándole la propiedad, otras veces el atributo. De cualquier manera, hay una distinción entre atributos y propiedades que deben observarse utilizando el método adecuado.
3
@NicolaPeluchetti: Aquí hay un ejemplo que ilustra la distinción entre propiedades y atributos.
10
$('someSelectorForTheElement').attr('name');
Patricia
fuente
debe usar un selector de identificación, si usa un selector de clase, encuentra problemas porque se devuelve una colección
Nicola Peluchetti
2
la identificación sería más específica, sí, pero sin su html y la completa falta de detalles en la pregunta, es difícil decir qué selector deberían usar.
Patricia
5

Juega con este ejemplo de jsFiddle :

HTML:

<p id="foo" name="bar">Hello, world!</p>

jQuery:

$(function() {
    var name = $('#foo').attr('name');

    alert(name);
    console.log(name);
});

Esto utiliza el método .attr () de jQuery para obtener valor para el primer elemento del conjunto coincidente.

Si bien no es específicamente jQuery, el resultado se muestra como un aviso de alerta y se escribe en la consola del navegador .

rjb
fuente
3
var name = $('#myElement').attr('name');
Dennis Traub
fuente
0

El método .attr () permite obtener el valor de atributo del primer elemento en un objeto jQuery:

$('#myelement').attr('name');
Didier Ghys
fuente