Holen Sie sich die ID des Elements und legen Sie sie als Variable fest

Lesezeit: 4 Minuten

Holen Sie sich die ID des Elements und legen Sie
Ivanka Todorova

Ich habe einen Knopf:

<button class="btn btn-info continue">
    <i class="ace-icon fa fa-check bigger-110"></i>
    Continue                                        
</button>

Onclick:

$(".continue").click(function(e) {
    currForm = $(this).parents('form');
    e.preventDefault();
});

Ich kann die ID ziemlich einfach bekommen: currForm.attr('id');, aber kann ich den Wert dieser ID als Variable festlegen.

Etwas wie die Variablenvariablen von PHP:

$a="hello";
$$a="world";
echo $hello;

Bearbeiten: Ich möchte die ID des Elements nicht ändern. Ich möchte diese ID abrufen und als Namen für eine Javascript-Variable verwenden. Zum Beispiel ist das Element, das ich oben angegeben habe, in a form das hat ID=’example_id’. currForm.attr('id') wird mir geben example_id und ich möchte eine Variable setzen example_id und weise ihm einen Wert zu.

var example_id = 'some value';

  • Deine Erklärung ist etwas neblig. Sie können die ID über currForm.attr(‘id’, ‘Ihre neue ID’);

    – Tyr

    24. September ’14 um 14:38 Uhr


  • Es sollte keinen Grund für Sie geben, solche dynamischen Variablen zu erstellen. Das klingt nach einem XY-Problem. Was versuchst du eigentlich zu tun? Warum verwenden Sie keine Objekteigenschaft anstelle einer Variablen?

    Benutzer1106925

    24. September ’14 um 14:44 Uhr


  • …und zu Ihrer Information, Sie können verwenden this.form um das Formular zu erhalten, damit Sie kein jQuery-Objekt erstellen und verwenden müssen .parents(). Und dann this.form.id gibt dir die ID. Dies wird um ein Vielfaches schneller sein als das, was Sie derzeit tun.

    Benutzer1106925

    24. September ’14 um 14:46


  • @squint ist richtig. Sie sollten dies nicht tun. Bitte erläutern Sie den eigentlichen Zweck Ihres Codes. Ebenfalls $(this).closest('form') ist besser als zu verwenden parents()

    – Kodierung weg

    24. September ’14 um 14:47

  • …sollten Sie sich auch bewusst sein, dass Sie Daten direkt mit den Elementen verknüpfen können .data() Methode. Dies scheint Ihr Ziel zu sein, da Sie gehofft haben, die Variable nach der ID des Elements zu benennen. benutze ich nicht besonders gerne .data() aus verschiedenen Gründen, aber es kann für alles geeignet sein, was Sie benötigen.

    Benutzer1106925

    24. September ’14 um 16:21

Holen Sie sich die ID des Elements und legen Sie
Karl-André Gagnon

Hier sind 3 Optionen für Sie.

eval (nicht empfohlen)

Sie können die Javascript-Funktion verwenden eval um zu erreichen, was Sie wollen. Aber seien Sie sich bewusst, das ist nicht empfohlen (Ich habe es zweimal betont, hoffe du hast es verstanden!).

Verwenden Sie eval nicht unnötig!

eval() ist eine gefährliche Funktion, die den übergebenen Code mit den Rechten des Aufrufers ausführt. Wenn Sie eval() mit einer Zeichenfolge ausführen, die von einer böswilligen Partei betroffen sein könnte, können Sie mit den Berechtigungen Ihrer Webseite / Erweiterung bösartigen Code auf dem Computer des Benutzers ausführen. Noch wichtiger ist, dass Code von Drittanbietern den Umfang sehen kann, in dem eval() aufgerufen wurde, was zu möglichen Angriffen auf eine Weise führen kann, für die die ähnliche Funktion nicht anfällig ist.

Es würde so verwendet:

eval('var ' + varName + ' = "something";');

Notation von Fensterobjekten (Besser als eval, immer noch nicht wirklich zu empfehlen)

Diese Methode besteht darin, die von JavaScript bereitgestellte Objektnotation für das globale Fensterobjekt zu verwenden. Dies verunreinigt den globalen Fensterbereich und kann von anderen JS-Dateien überschrieben werden, was schlecht ist. Wenn Sie mehr über dieses Thema erfahren möchten, ist dies eine gute Frage: Das Speichern einer Variablen im JavaScript-Objekt ‘window’ ist eine geeignete Methode, dieses Objekt zu verwenden?.

Um diese Technik zu verwenden, gehen Sie wie folgt vor:

window[varName] = something;
alert(window[varName]);

Verwenden eines Objekts (empfohlen)

Die beste Lösung wäre, einen eigenen Variablenbereich zu erstellen. Sie könnten beispielsweise im globalen Gültigkeitsbereich eine Variable erstellen und ihr ein Objekt zuweisen. Sie können dann die Objektnotation verwenden, um Ihre dynamischen Variablen zu erstellen. Es funktioniert genauso wie das Fenster:

var globalScope = {};

function awesome(){
    var localScope = {};
    globalScope[varName] = 'something';
    localScope[varName] = 'else';

    notSoAwesome();
}

function notSoAwesome(){
    alert(globalScope[varName]); // 'something';
    alert(localScope[varName]); // undefined
}

Sie können dies mit einem Javascript-Objekt tun:

var currForm = $(this).parents('form');//form id="hello"

var obj = {};

obj[currForm.attr('id')] = 30;

console.log(obj.hello)

Sie können und verwenden, um Ihre Variablen zu speichern in:

var variables = {};

Um eine Variable hinzuzufügen, geben Sie einfach Folgendes ein:

variables[name] = value;

und um auf den Wert zuzugreifen:

variables[name] 

Schau es dir hier an: jsGeige

Taste 2 liest den Wert von Variablen[formid] und Taste 1 setzt formid auf gesendet

Holen Sie sich die ID des Elements und legen Sie
Schröd

Ihre beste Option, um das zu archivieren, was Sie wirklich wollen, ist die Verwendung von eval(), wie folgt:

eval("var " + currForm.attr('id');

Überprüfen Sie diesen Link ->

Dynamische Variablen in Javascript

1642052884 933 Holen Sie sich die ID des Elements und legen Sie
Tyr

Verwenden Sie eval (aber nicht empfohlen):

var id = 'that_id';
eval(id+" = 'other id';");
alert(that_id); // results: 'other id'

.

482300cookie-checkHolen Sie sich die ID des Elements und legen Sie sie als Variable fest

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy