119 votes

Obtenir la valeur du nom de l'attribut de <input>.

Comment obtenir la valeur du nom de l'attribut d'une balise d'entrée en utilisant jQuery. Veuillez m'aider.

<input name="xxxxx" value="1">

248voto

GenericTypeTea Points 27689

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

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

33voto

Sarfraz Points 168484

Utilisez le attr de jQuery comme ceci :

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

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

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

15voto

Niet the Dark Absol Points 154811

S'il est indéniable que jQuery est un outil puissant, c'est une très mauvaise idée de l'utiliser pour une opération aussi triviale que "obtenir la valeur de l'attribut d'un élément".

À en juger par la réponse actuellement acceptée, je vais supposer que vous avez pu ajouter un attribut ID à votre élément et l'utiliser pour le sélectionner.

Avec cela en tête, voici deux morceaux de code. D'abord, le code qui vous a été donné dans la réponse acceptée :

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

Et deuxièmement, le Vanille JS version de celui-ci :

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

Mes résultats :

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

Vous pouvez tester par vous-même aquí . La version "plain JavaScript" est plus de 35 fois plus rapide que la version jQuery.

Maintenant, c'est juste pour une opération, avec le temps vous aurez de plus en plus de choses à faire dans votre code. Peut-être que pour quelque chose de particulièrement avancé, la solution optimale "purement JavaScript" prendrait une seconde pour s'exécuter. La version jQuery pourrait prendre de 30 secondes à une minute entière ! C'est énorme ! Les gens ne vont pas rester assis pendant ce temps. Même le navigateur se lassera et vous offrira l'option de tuer la page Web parce qu'elle prend trop de temps !

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

7voto

meagar Points 85475

Vous devez écrire un sélecteur qui sélectionne l'option correcte <input> d'abord. Idéalement, vous utilisez l'ID de l'élément $('#element_id') ou, à défaut, l'ID de son conteneur. $('#container_id input') ou la classe de l'élément $('input.class_name') .

Votre élément n'a aucun de ces éléments et aucun contexte, il est donc difficile de vous dire comment le sélectionner.

Une fois que vous aurez trouvé le bon sélecteur, vous utiliserez la fonction attr pour accéder aux attributs de l'élément. Pour obtenir le nom, vous utiliserez $(selector).attr('name') qui renverrait (dans votre exemple) 'xxxxx' .

5voto

Mikeys4u Points 142

Une meilleure solution serait d'utiliser 'this', qui prend le nom de l'identifiant et l'utilise. Tant que vous ajoutez le nom de la classe appelée 'mytarget'.

Chaque fois que l'un des champs qui ont une cible change, une boîte d'alerte s'affiche avec le nom de ce champ. Il suffit de couper et de 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:

X