Angenommen, ich muss eine JavaScript-Variable basierend auf einem Zähler deklarieren, wie mache ich das?
var pageNumber = 1;
var "text"+pageNumber;
Der obige Code funktioniert nicht.
user735566
Angenommen, ich muss eine JavaScript-Variable basierend auf einem Zähler deklarieren, wie mache ich das?
var pageNumber = 1;
var "text"+pageNumber;
Der obige Code funktioniert nicht.
bungdito
In JavaScript (wie ich weiß) gibt es zwei Möglichkeiten, wie Sie dynamische Variablen erstellen können:
bewerten:
var pageNumber = 1;
eval("var text" + pageNumber + "=123;");
alert(text1);
Fensterobjekt:
var pageNumber = 1;
window["text" + pageNumber] = 123;
alert(window["text" + pageNumber]);
Zum Beispiel habe ich ein Array in dynamischer Variable window["text" + pageNumber]
– Wie bekomme ich die Länge des Arrays?
– Petrus
16. Februar 2015 um 22:12 Uhr
Fenster[“text” + pageNumber].Länge
– Farzad Yousefzadeh
5. Juli 2016 um 4:29 Uhr
nach 6 jahren hat mir diese antwort das leben gerettet ! Vielen Dank !!
– Hieronymus
22. Februar 2017 um 6:57 Uhr
Sie können wahrscheinlich jedes Objekt verwenden, nicht nur das window
eins: siehe Antwort von Mark Kahn.
– Coeur
11. März 2020 um 14:20 Uhr
Wie würden Sie dann auf diese Variable zugreifen, da Sie ihren Namen nicht kennen? 🙂 Sie sind wahrscheinlich besser dran, einen Parameter auf ein Objekt zu setzen, zB:
var obj = {};
obj['text' + pageNumber] = 1;
wenn du das wirklich machen willst:
eval('var text' + pageNumber + '=1');
Es gibt viele Möglichkeiten, wie Sie auf diese Variablen zugreifen können: Durchlaufen einer Zahlenmenge, in der die Variablen var1, var2, var3 heißen. Oder Abrufen eines unbekannten Satzes von Variablen und Laden dieser dynamisch durch Durchlaufen eines JSON-Objekts und Aktualisieren von globalen Variablen, ich bin mir sicher, dass es noch viel mehr Szenarien gibt
– Markus Steudel
22. August 2013 um 19:07 Uhr
Ich glaube nicht, dass Sie es tun können, um JavaScript zu singen. Ich denke, Sie können stattdessen ein Array verwenden,
var textArray=new Array();
textArray[pageNumber]="something";
Angenommen, die Variable befindet sich im globalen Geltungsbereich, könnten Sie etwa so vorgehen:
var x = 1;
var x1 = "test"
console.log(window["x" + x]); //prints "test"
Eine bessere Frage könnte jedoch sein, warum Sie ein solches Verhalten wünschen.
KooiInc
Sie könnten Ihren Zähler auch in ein Objekt einpacken:
var PageNumber = (function() {
var value = 0;
return {
getVal: function(){return value;},
incr: function(val){
value += val || 1;
this['text'+value]=true /*or some value*/;
return this;
}
};
})();
alert(PageNumber.incr().incr().text2); //=>true
alert(PageNumber['text'+PageNumber.getVal()]) /==> true
Abhi
Es kann mit durchgeführt werden this
Schlüsselwort in JS:
Z.B:
var a = [1,2,3];
for(var i = 0; i < a.length; i++) {
this["var" + i] = i + 1;
}
dann beim Drucken:
var0 // 1
var1 // 2
var2 // 3
Bill die Eidechse
Ich brauchte vor kurzem so etwas.
Ich habe eine Liste von Variablen wie diese:
var a = $('<div class="someHtml"></div>'),b = $('<div class="someHtml"></div>'),c = $('<div class="someHtml"></div>');
Ich musste sie mit einer anderen Variablen aufrufen, die eine Zeichenfolge mit dem Namen einer dieser Variablen wie folgt enthielt:
var c="a"; // holds the name of the wanted content, but can also be 'b' or 'c'
$('someSelector').html(eval(c)) // this will just use the content of var c defined above
Verwenden Sie einfach eval, um die variablen Daten abzurufen.
Ich habe es gerade getan