Ich muss die ID eines Elements mit jQuery ändern.
Anscheinend funktionieren diese nicht:
jQuery(this).prev("li").attr("id")="newid"
jQuery(this).prev("li")="newid"
Ich habe herausgefunden, dass ich es mit dem folgenden Code schaffen kann:
jQuery(this).prev("li")show(function() {
this.id="newid";
});
Aber das scheint mir nicht richtig zu sein. Es muss einen besseren Weg geben, nein? Falls nicht, welche andere Methode kann ich anstelle von Ein- / Ausblenden oder anderen Effekten verwenden? Natürlich möchte ich das Element nicht jedes Mal ein- / ausblenden oder beeinflussen, nur um seine ID zu ändern.
(Ja, ich bin ein jQuery-Neuling.)
Bearbeiten
Ich kann in diesem Fall keine Klassen verwenden, ich muss IDs verwenden.
javascript
jquery
yoavf
quelle
quelle
foo = 1
), einem Mitglied eines Objekts (foo.bar = 2
oderfoo['bar'] = 2
) oder einem Array-Index (foo[0] = 3
) zuweisen, aber einem Ausdruck wie dem Ergebnis eines Operators ((x + b) = 5
) oder dem Ergebnis eines Funktionsaufrufs (foo() = 1
, ) zuweisenfoo(x).bar(y) = 7
) macht keinen Sinn, daher wird es definitiv nicht so sein, wie es in jQuery oder einer anderen JavaScript-Bibliothek funktioniert.Antworten:
Ihre Syntax ist falsch, Sie sollten den Wert als zweiten Parameter übergeben:
quelle
.prop( ... )
statt sein.attr( ... )
?id
weiterhin mitattr(...)
Eine BEVORZUGTE OPTION
.attr
ist.prop
wie folgt zu verwenden :.attr
Ruft das Attribut des Elements ab, während.prop
die Eigenschaft abgerufen wird, auf die das Attribut verweist (dh was Sie tatsächlich ändern möchten).quelle
.prop()
Methode eine Möglichkeit, Eigenschaftswerte explizit abzurufen und.attr()
Attribute abzurufen."Was Sie tun wollen, ist:
Dadurch wird die ID auf die neue ID gesetzt
quelle
Ich habe etwas Ähnliches mit diesem Konstrukt gemacht
quelle
Ich bin mir nicht sicher, was Ihr Ziel ist, aber könnte es besser sein, stattdessen addClass zu verwenden? Ich meine, eine Objekt-ID sollte meiner Meinung nach statisch und spezifisch für dieses Objekt sein. Wenn Sie nur versuchen, die Anzeige auf der Seite oder so etwas zu ändern, würde ich diese Details in eine Klasse einfügen und sie dann dem Objekt hinzufügen, anstatt zu versuchen, die ID zu ändern. Wiederum sage ich das, ohne Ihr unterstrichenes Ziel zu verstehen.
quelle
quelle
Dies könnte für alle Zwecke tun. Fügen Sie einfach vor Ihrem Body Closing Tag hinzu und dürfen Sie Jquery.min.js nicht hinzufügen
quelle
Erans Antwort ist gut, aber ich würde das anhängen. Sie müssen jede Interaktivität beobachten, die nicht inline zum Objekt ist (dh wenn ein Onclick-Ereignis eine Funktion aufruft, wird dies immer noch der Fall sein). Wenn dieser ID jedoch eine Javascript- oder jQuery-Ereignisbehandlung zugeordnet ist, wird sie grundsätzlich abgebrochen ::
Wenn die ID jetzt in # myID123 geändert wird, funktioniert die oben angehängte Funktion meiner Erfahrung nach nicht mehr richtig.
quelle