jQuery:字符串转换为变量

时间:2014-10-02 09:53:00

标签: javascript

我想将字符串转换为变量:

var abc='b';
var b=5;
console.log(window[abc]);

在js中,上面是正常的。当使用jquery时:

$(document).ready(function(){
    var abc='b';
    var b=5;
    console.log(window[abc]);
});

show未定义,所以,我怎么写?在第二个示例中,通过全局对象获得5。

3 个答案:

答案 0 :(得分:0)

一切都与范围有关。

var b = 5;

仅存在于函数(){...}的范围内,但您试图在窗口范围内查找它。

试试这个:

console.log(eval(abc))

或者,将b指定为某个临时对象的键:

$(document).ready(function(){
   var scope = {};
   scope.abc = 'b';
   scope.b = 5;
   console.log(scope[scope.abc])
});

<强>更新

如果您想使用本地范围,只需将“scope”替换为“this”:

$(document).ready(function(){
   this.abc = 'b';
   this.b = 5;
   console.log(this[this.abc])
});

答案 1 :(得分:0)

var abc在函数中定义。所以它是一个'本地'变量,不在window对象中。只需使用console.log(abc)即可。在您的第一个示例中,console.log(abc)也可以使用。

答案 2 :(得分:0)

快速举例:

$(document).ready(function(){
    var abc = 'b';
    this.b  = 5;

    console.log(this[abc]);
});