![](/img/trans.png)
[英]How to convert multiline string value to a legit JSON string variable in JavaScript?
[英]How to convert a string value to a variable in javascript?
var test1;
$(document).ready(function () {
test1 = $("#test1ID").jQueryPlugin();
});
var test2;
$(document).ready(function () {
test2 = $("#test2ID").jQueryPlugin();
});
...
这样做是为了使我们可以只执行test1.foo()
... foo是jQueryPlugin内部的一个函数,可以使用test1.foo()
语法进行访问;
因此,我们有一个包含(test1,test2,...)的字符串数组,我们需要在循环时访问foo():
for(i=0; i < theArrayOfStrings.length; i++){
theArrayOfStrings[i].foo();
//so here is the problem... we can't do test1.foo(), test2.foo() ... =(
}
关于如何在循环中调用函数foo()的任何想法? 还是可以将字符串值转换为javascript中的变量?
创建一个对象来保存所有“测试”可能是值得的:
var tests = {};
$(document).ready(function () {
tests.test1 = $("#test1ID").jQueryPlugin();
tests.test2 = $("#test2ID").jQueryPlugin();
});
for(i=0; i < theArrayOfStrings.length; i++){
tests[theArrayOfStrings[i]].foo();
}
eval()函数用于评估字符串变量中的脚本。 例如 :
var test1;
eval("test1=" + theArrayOfStrings[i]);
test1.foo();
但是在使用之前先仔细考虑一下这个问题吧JavaScript的eval()何时不是邪恶的?
如果test1
是全局变量,则可以通过window
对象按名称访问它:
window[theArrayOfStrings[0]].foo(); // test1();
如果不是,那么eval
是唯一的方法,但是我强烈建议在所有情况下都避免eval
。 像JP的答案(+1)中那样使用查找比选择变量名更合适。
var test = [], n = 5;
$(document).ready(function () {
for(var i=0; i < n; i++)
test.push($("#test"+i+"ID").jQueryPlugin());
});
// the values in test won't be accessible before the document is loaded.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.