addID in jQuery?

87

Gibt es eine Methode zum Hinzufügen von IDs wie zum Hinzufügen einer Klasse - addClass ()?

eozzy
quelle
addClass () ist kein Selektor. Ein Selektor ist etwas, das als Element (e) definiert ist, bevor etwas damit gemacht wird. addClass () ist eine Methode, die eine Aktion auf etwas hat.
Phish
1
Können Sie in Ihrer Frage das Wort "Selektor" für "Funktionalität" ersetzen?
Milche Patern
Mögliches Duplikat des Attributs Hinzufügen in jQuery
Makyen

Antworten:

181

ID ist ein Attribut, das Sie mit der attr- Funktion festlegen können:

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

Ich bin mir nicht sicher, was Sie mit dem Hinzufügen von IDs meinen , da ein Element nur einen Bezeichner haben kann und dieser Bezeichner eindeutig sein muss.

CMS
quelle
1
Ich bin mir nicht sicher, wie dies die Frage beantwortet. Dies fügt keine ID hinzu, es setzt eine, was ein großer Unterschied sein kann, wenn Sie dynamische IDs verwenden
Ian S
Meine Interpretation der Frage: <div>Wenn Sie sich eine ID ansehen, gibt es keine ID. Wenn Sie die ID aus irgendeinem Grund nicht manuell hinzufügen können, möchten Sie möglicherweise das Hinzufügen einer ID mit Javascript / jQuery automatisieren.
PJ Brunet
13

meinst du eine Methode?

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

Achten Sie nur darauf, dass Sie nicht mehrere Elemente auf dieselbe ID setzen.

scunliffe
quelle
9

So was :

var id = $('div.foo').attr('id');
$('div.foo').attr('id', id + ' id_adding');
  1. aktuelle ID erhalten
  2. Geben Sie die Actuel ID ein und fügen Sie die neue hinzu
Sylvain
quelle
Ich bin mir nicht sicher, ob das OP dies wollte ... aber was noch wichtiger ist, es kann nur einen idAttributwert geben. Insbesondereid weisen die Spezifikationen für ein Attribut eindeutig darauf hin, dass es möglicherweise keine Leerzeichen enthält: w3.org/TR/html401/types.html#type-name
scunliffe
1

Ich habe so etwas schon einmal benutzt, um @scunliffes Anliegen anzusprechen. Es findet alle Instanzen von Elementen mit einer Klasse von (in diesem Fall .button), weist eine ID zu und hängt ihren Index an den ID-Namen an:

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

Angenommen, Sie haben 3 Elemente mit dem Klassennamen .button auf einer Seite. Das Ergebnis wäre, allen eine eindeutige ID hinzuzufügen (zusätzlich zu ihrer Klasse von "Schaltflächen").

In diesem Fall # button-0, # button-1 bzw. # button-2. Dies kann sehr praktisch sein. Ersetzen Sie einfach ".button" in der ersten Zeile durch die Klasse, auf die Sie abzielen möchten, und ersetzen Sie "button" in der return-Anweisung durch die gewünschte eindeutige ID. Hoffe das hilft!

Danny Dickson
quelle