112 votes

jQuery: obtenir la valeur du nom d'attribut de <input>

Comment obtenir la valeur du nom d'attribut d'une balise d'entrée à l'aide de jQuery. S'il vous plaît aider.

 <input name='xxxxx' value=1>
 

231voto

GenericTypeTea Points 27689

Donnez un ID à votre entrée et utilisez la méthode attr :

 var name = $("#id").attr("name");
 

32voto

Sarfraz Points 168484

Utilisez la méthode attr de jQuery comme ceci:

 alert($('input').attr('name'));
 

Notez que vous pouvez également utiliser attr pour définir les valeurs d'attribut en spécifiant le deuxième argument:

 $('input').attr('name', 'new_name')
 

14voto

Niet the Dark Absol Points 154811

Alors on ne peut nier que jQuery est un outil puissant, il est vraiment une mauvaise idée de l'utiliser pour une opération triviale comme "obtenir un élément de la valeur de l'attribut".

À en juger par l'actuel accepté de répondre, je vais supposer que vous avez été en mesure d'ajouter un attribut ID à votre élément et l'utiliser pour sélectionner.

Avec cela à l'esprit, voici deux morceaux de code. D'abord, le code donné dans le a Accepté de Répondre:

$("#ID").attr("name");

Et la deuxième, la Vanille JS version de celui-ci:

document.getElementById('ID').getAttribute("name");

Mes résultats:

  • jQuery: 300k opérations / seconde
  • JavaScript: 11,000 k opérations / seconde

Vous pouvez tester par vous-même ici. La "plaine JavaScript" vesion est plus de 35 fois plus rapide que la version jQuery.

Maintenant, c'est juste pour une seule opération, au fil du temps vous aurez de plus en plus de choses qui se passent dans votre code. Peut-être pour quelque chose de particulièrement avancée, l'optimal "JavaScript" la solution serait de prendre une seconde pour s'exécuter. La version jQuery peut prendre de 30 secondes à une minute entière! C'est énorme! Les gens ne vont pas s'asseoir autour pour cela. Même le navigateur va s'ennuyer et de vous offrir la possibilité de tuer la page web pour prendre trop de temps!

Comme je l'ai dit, jQuery est un outil puissant, mais il ne devrait pas être considéré comme la réponse à tout.

7voto

meagar Points 85475

Vous avez besoin d'écrire un sélecteur qui permet de sélectionner le corriger <input> première. L'idéal est d'utiliser l'identificateur de l'élément $('#element_id'), à défaut, l'ID de son conteneur $('#container_id input'), ou de l'élément de la classe $('input.class_name').

Votre élément ne possède aucune de ces et pas de contexte, il est donc difficile de vous dire comment le sélectionner.

Une fois que vous avez trouvé le bon sélecteur, vous pouvez utiliser l' attribut méthode pour accéder aux attributs de l'élément. Pour obtenir le nom, vous l'auriez $(selector).attr('name') qui permettrait le retour (dans votre exemple) 'xxxxx'.

5voto

Mikeys4u Points 142

Un meilleur moyen pourrait être d'utiliser 'ceci', il prend quel que soit le nom de 'id' et l'utilise. Tant que vous ajoutez le nom de la classe appelé "mytarget".

Chaque fois que l'un des champs contenant la cible change, une boîte d'alerte portant le nom de ce champ s'affiche. Il suffit de couper et coller tout le script pour que cela fonctionne!

 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>
<script>
$(document).ready(function() {
 $('.mytarget').change(function() {
var name1 = $(this).attr("name");
alert(name1);
 });
});
</script>

Name: <input type="text" name="myname" id="myname" class="mytarget"><br />
Age: <input type="text" name="myage" id="myage" class="mytarget"><br />
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by: