我如何声明和使用JavaScript中的dynamicvariables?
假设我需要根据一个计数器来声明一个javascriptvariables,我该怎么做呢?
var pageNumber = 1; var "text"+pageNumber;
上面的代码不起作用?
能否请你帮忙? 谢谢!
在JavaScript中(据我所知)有两种方法可以创builddynamicvariables:
- eval函数
- 窗口对象
EVAL:
var pageNumber = 1; eval("var text" + pageNumber + "=123;"); alert(text1);
窗口对象:
var pageNumber = 1; window["text" + pageNumber] = 123; alert(window["text" + pageNumber]);
那么你将如何访问这个variables,因为你不知道它的名字? :)你可能最好在对象上设置一个参数,例如:
var obj = {}; obj['text' + pageNumber] = 1;
如果你真的想要这样做:
eval('var text' + pageNumber + '=1');
我不认为你可以唱歌JavaScript.I认为你可以使用一个数组,而不是这个,
var textArray=new Array(); textArray[pageNumber]="something";
假设这个variables在全局范围内,你可以这样做:
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
我最近需要这样的东西。
我有这样的variables列表:
var a = $('<div class="someHtml"></div>'),b = $('<div class="someHtml"></div>'),c = $('<div class="someHtml"></div>');
我需要使用另一个variables来保存一个string,其名称如下:
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来获取可变数据。
我已经做了