Comment puis-je obtenir l’ID d’un élément en utilisant jQuery?

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

Pourquoi ce qui précède ne fonctionne-t-il pas et comment dois-je faire cela?

La manière jQuery:

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

Dans votre exemple:

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

Ou à travers le DOM:

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

ou même :

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

et raison de l’utilisation de $('#test').get(0) dans JQuery ou même $('#test')[0] est que $('#test') est un sélecteur JQuery et retourne un tableau () des résultats pas un seul élément par sa fonctionnalité par défaut

une alternative pour le sélecteur DOM dans jquery est

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

qui est différent de .attr() et $('#test').prop('foo') récupère la propriété foo DOM spécifiée, alors que $('#test').attr('foo') récupère le foo HTML spécifié atsortingbut et vous pouvez trouver plus de détails sur les différences ici .

$('selector').attr('id') renverra l’identifiant du premier élément correspondant. Référence

Si votre ensemble correspondant contient plus d’un élément, vous pouvez utiliser l’ iterator .each classique pour renvoyer un tableau contenant chacun des identifiants:

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

Ou, si vous souhaitez obtenir un peu plus de difficulté, vous pouvez éviter l’encapsuleur et utiliser le raccourci .map .

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

id est une propriété d’un Element html. Cependant, lorsque vous écrivez $("#something") , il retourne un object jQuery qui encapsule les éléments DOM correspondants. Pour récupérer le premier élément DOM correspondant, appelez get(0)

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

Sur cet élément natif, vous pouvez appeler id ou toute autre propriété ou fonction DOM native.

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

C’est la raison pour laquelle id ne fonctionne pas dans votre code.

Vous pouvez également utiliser la méthode attr de jQuery car d’autres réponses suggèrent d’obtenir l’atsortingbut id du premier élément correspondant.

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

Les réponses ci-dessus sont géniales, mais au fur et à mesure que jquery évolue, vous pouvez aussi faire:

 var myId = $("#test").prop("id"); 
 $.fn.extend({ id : function() { return this.attr('id'); } }); alert( $('#element').id() ); 

Un code de vérification nécessaire bien sûr, mais facilement implémenté!

.id n’est pas une fonction jquery valide. Vous devez utiliser la fonction .attr() pour accéder aux atsortingbuts d’un élément. Vous pouvez utiliser .attr() pour modifier une valeur d’atsortingbut en spécifiant deux parameters ou pour obtenir la valeur en en spécifiant un.

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

Si vous souhaitez obtenir un ID d’un élément, par exemple un sélecteur de classe, lorsqu’un événement (dans ce cas, l’événement click) a été déclenché sur cet élément spécifique, les tâches suivantes seront effectuées:

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

$('#test') renvoie un object jQuery, vous ne pouvez donc pas simplement utiliser object.id pour obtenir son Id

vous devez utiliser $('#test').attr('id') , qui renvoie votre ID requirejs de l’élément

Cela peut également être fait comme suit,

$('#test').get(0).id qui est égal à document.getElementById('test').id

Peut-être utile pour ceux qui trouvent ce fil. Le code ci-dessous ne fonctionnera que si vous utilisez déjà jQuery. La fonction renvoie toujours un identifiant. Si l’élément n’a pas d’identifiant, la fonction génère l’identifiant et l’ajoute à l’élément.

 var generatedIdCounter = 0; $.fn.id = function() { var identifier = this.attr('id'); if(!identifier) { generatedIdCounter++; identifier = 'isGenerated_' + generatedIdCounter; this.attr('id', identifier); } return identifier; } 

Comment utiliser:

 $('.classname').id(); $('#elementId').id(); 

Eh bien, il semble y avoir eu aucune solution et je voudrais proposer ma propre solution qui est une extension du prototype de JQuery. Je mets ceci dans un fichier d’aide qui est chargé après la bibliothèque JQuery, d’où la vérification de window.jQuery

 if (window.jQuery) { $.prototype.id = function () { if (this.length > 1) { var val = []; this.each(function (idx, el) { val.push($(el).id()); }); return val; } else { return this.attr('id'); } } } 

Ce n’est peut-être pas parfait, mais c’est peut-être un début d’inclusion dans la bibliothèque JQuery.

Renvoie une valeur de chaîne unique ou un tableau de valeurs de chaîne. Le tableau de valeurs de chaîne, pour l’événement, un sélecteur multi-éléments a été utilisé.

$('#test').attr('id') Dans votre exemple:

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

En utilisant le code ci-dessus, vous pouvez obtenir l’identifiant.

C’est une vieille question, mais à partir de 2015, cela peut réellement fonctionner:

 $('#test').id; 

Et vous pouvez également faire des missions:

 $('#test').id = "abc"; 

Tant que vous définissez le plug-in JQuery suivant:

 Object.defineProperty($.fn, 'id', { get: function () { return this.attr("id"); }, set: function (newValue) { this.attr("id", newValue); } }); 

Fait intéressant, si element est un élément DOM, alors:

 element.id === $(element).id; // Is true! 

Important: si vous créez un nouvel object avec jQuery et liez un événement, vous devez utiliser prop et non attr , comme ceci:

$("

",{ id: "yourId", class: "yourClass", html: "" }).on("click", function(e) { alert($(this).prop("id")); }).appendTo("#something");

Cela peut être une identification d’élément, une classe ou une utilisation automatique

 ------------------------ $(this).attr('id'); ========================= ------------------------ $("a.remove[data-id='2']").attr('id'); ========================= ------------------------ $("#abc1'").attr('id'); ========================= 

Cela va enfin résoudre vos problèmes:

Disons que vous avez beaucoup de boutons sur une page et que vous souhaitez en changer un avec jQuery Ajax (ou non ajax) en fonction de leur identifiant.

Disons aussi que vous avez beaucoup de types de boutons différents (pour les formulaires, pour approbation et à des fins similaires), et que vous souhaitez que jQuery ne traite que les boutons “similaires”.

voici un code qui fonctionne: jQuery ne traitera que les boutons de la classe .cls-hlpb, il prendra l’id du bouton sur lequel il a été cliqué et le changera en fonction des données provenant de l’ajax.

          

le code a été pris de w3schools et modifié.

Puisque l’ id est un atsortingbut, vous pouvez l’obtenir en utilisant la méthode attr .