addID dans jQuery?

87

Existe-t-il une méthode disponible pour ajouter des identifiants comme il y en a pour l'ajout d'une classe - addClass ()?

éozzy
la source
addClass () n'est pas un sélecteur. Un sélecteur est défini comme élément (s) avant de faire quelque chose avec / avec lui. addClass () est une méthode, quelque chose qui a une action sur quelque chose.
Phish
1
pouvez-vous remplacer le mot «sélecteur» par «fonctionnalité» dans votre question?
Milche Patern
Double

Réponses:

183

L'ID est un attribut, vous pouvez le définir avec la fonction attr :

$(element).attr('id', 'newID');

Je ne sais pas ce que vous voulez dire à propos de l' ajout d'identifiants car un élément ne peut avoir qu'un seul identifiant et cet identifiant doit être unique.

Christian C. Salvadó
la source
1
Je ne sais pas comment cela répond à la question. Cela n'ajoute pas d'identifiant, cela en définit un, ce qui peut être une grande différence si vous utilisez des identifiants dynamiques
Ian S
Mon interprétation de la question: en regardant un <div>il n'y a pas d'ID, et si pour une raison quelconque vous ne pouvez pas ajouter l'ID à la main, vous voudrez peut-être automatiser l'ajout d'un ID avec Javascript / jQuery.
PJ Brunet
13

voulez-vous dire une méthode?

$('div.foo').attr('id', 'foo123');

Veillez simplement à ne pas définir plusieurs éléments sur le même ID.

scunliffe
la source
9

Comme ça :

var id = $('div.foo').attr('id');
$('div.foo').attr('id', id + ' id_adding');
  1. obtenir un identifiant réel
  2. mettre l'identifiant actuel et ajouter le nouveau
Sylvain
la source
Je ne suis pas sûr que ce soit ce que l'OP voulait ... mais plus important encore, il ne peut y avoir qu'une seule idvaleur d'attribut. Plus précisément, les spécifications d'un idattribut indiquent clairement qu'il ne peut pas contenir d'espaces: w3.org/TR/html401/types.html#type-name
scunliffe
1

J'ai déjà utilisé quelque chose comme ça qui répond aux préoccupations de @scunliffes. Il trouve toutes les instances d'éléments avec une classe de (dans ce cas .button), attribue un ID et ajoute son index au nom de l'ID:

$(".button").attr('id', function (index) {
	return "button-" + index;
});

Supposons donc que vous ayez 3 éléments avec le nom de classe .button sur une page. Le résultat serait d'ajouter un identifiant unique à tous (en plus de leur classe de "bouton").

Dans ce cas, # button-0, # button-1, # button-2, respectivement. Cela peut être très utile. Remplacez simplement ".button" dans la première ligne par la classe que vous souhaitez cibler, et remplacez "button" dans l'instruction de retour par ce que vous souhaitez que votre identifiant unique soit. J'espère que cela t'aides!

Danny Dickson
la source