Comment puis-je obtenir le nom de l'élément avec jQuery?

130

Comment puis-je obtenir la propriété name de l'élément HTML avec jQuery?

Poonam Bhatt
la source
quelques html ou même un peu plus d'informations sur l'élément dont vous voulez le nom nous aideraient à vous donner une réponse plus précise.
Patricia
4
Utilisez .prop()pour obtenir des propriétés et .attr()pour obtenir des attributs. N'utilisez pas .attr()pour obtenir une propriété comme tout le monde le suggère. Nous travaillons ici avec JavaScript, pas avec le balisage HTML.
11
Cela devrait être rouvert. Le demandeur devrait être récompensé pour être allé droit au but et ne pas avoir précédé quelque chose comme "J'ai ce site Web où ..."
cantera
@ cantera25: merci de l'avoir signalé ..
Poonam Bhatt

Réponses:

221

Vous devriez utiliser attr('name')comme ça

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

vous devez utiliser un sélecteur d'identifiant, si vous utilisez un sélecteur de classe vous rencontrez des problèmes car une collection est retournée

Nicola Peluchetti
la source
8
J'obtiens juste des valeurs non définies lorsque j'utilise ceci ou .prop ()
HorusKol
1
Y a-t-il une raison de préférer attr ('nom') à prop ('nom')?
dallin
Je l'ai utilisé $(this).attr('name');sur un sélecteur de classe $('.jobSelect').change(function() {et je n'ai pas rencontré de problèmes.
Ömer An
14

Pour lire une propriété d'un objet que vous utilisez .propertyNameou une ["propertyName"]notation.

Ce n'est pas différent pour les éléments.

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

Si vous souhaitez spécifiquement utiliser des jQueryméthodes, vous utiliserez la .prop()méthode.

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

Veuillez noter que les attributs et les propriétés ne sont pas nécessairement les mêmes.

user1106925
la source
je pense que prop()c'est pour les propriétés booléennes comme checkedpas pour les attributs
Nicola Peluchetti
2
@NicolaPeluchetti: .prop()est pour toute propriété sur l'élément DOM. .attr()est une méthode très confuse qui a changé son comportement entre les différentes versions, vous donnant parfois la propriété, d'autres fois l'attribut. Dans tous les cas, il existe une distinction entre les attributs et les propriétés qui doivent être observés en utilisant la méthode appropriée.
3
@NicolaPeluchetti: Voici un exemple qui illustre la distinction entre propriétés et attributs.
10
$('someSelectorForTheElement').attr('name');
Patricia
la source
vous devriez utiliser un sélecteur d'identifiant, si vous utilisez un sélecteur de classe, vous rencontrez des problèmes car une collection est renvoyée
Nicola Peluchetti
2
id serait le plus spécifique oui, mais sans leur html et le manque complet de détails dans la question, il est difficile de dire quel sélecteur ils devraient utiliser.
Patricia
5

Jouez avec cet exemple jsFiddle :

HTML:

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

jQuery:

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

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

Cela utilise la méthode .attr () de jQuery pour obtenir la valeur du premier élément de l'ensemble correspondant.

Bien que n'étant pas spécifiquement jQuery, le résultat est affiché comme une invite d'alerte et écrit dans la console du navigateur .

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

La méthode .attr () permet d'obtenir la valeur d'attribut du premier élément dans un objet jQuery:

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