Предположим, мне нужно объявить переменную javascript на основе счетчика, как это сделать?
var pageNumber = 1;
var "text"+pageNumber;
Вышеприведенный код не работает?
Не могли бы вы помочь? Спасибо!
Предположим, мне нужно объявить переменную javascript на основе счетчика, как это сделать?
var pageNumber = 1;
var "text"+pageNumber;
Вышеприведенный код не работает?
Не могли бы вы помочь? Спасибо!
В JavaScript (как я знаю) есть два способа создания динамических переменных:
Eval:
var pageNumber = 1;
eval("var text" + pageNumber + "=123;");
alert(text1);
оконный объект:
var pageNumber = 1;
window["text" + pageNumber] = 123;
alert(window["text" + pageNumber]);
Как вы могли бы получить доступ к указанной переменной, так как вы не знаете ее имени?:) Возможно, вам лучше настроить параметр для объекта, например:
var obj = {};
obj['text' + pageNumber] = 1;
если вы - действительно хотите сделать это:
eval('var text' + pageNumber + '=1');
Я не думаю, что вы можете это спеть JavaScript. Я думаю, вы можете использовать вместо этого массив,
var textArray=new Array();
textArray[pageNumber]="something";
Предполагая, что переменная находится в глобальной области видимости, вы можете сделать что-то вроде этого:
var x = 1;
var x1 = "test"
console.log(window["x" + x]); //prints "test"
Однако лучшим может быть вопрос, почему вы хотите такое поведение.
Вы также можете обернуть свой счетчик в объект:
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
Мне недавно понадобилось что-то вроде этого.
У меня есть список таких переменных:
var a = $('<div class="someHtml"></div>'),b = $('<div class="someHtml"></div>'),c = $('<div class="someHtml"></div>');
Мне нужно было вызвать их, используя другую переменную, содержащую строку с именем одной из этих переменных:
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
Просто используйте eval для получения переменных данных.
Я просто сделал