如何通过构建字符串动态访问变量

时间:2014-05-08 19:55:41

标签: javascript variables

希望实现这样的目标:

number = "first";
number2 = "second";

var firstColor = "red";
var secondColor = "blue";

//Changes background to red:
div.style.backgroundColor = number+"Color";

//Changes background to blue:
div.style.backgroundColor = number2+"Color";

当我尝试这个时,它对我不起作用,并且不应用样式。 我该怎么做动态。

编辑:

我有一系列其他ifs来选择字体文本,具体取决于所选的团队。 我想创建这样的变量:

 liverpoolColor = "red";

else if(team == "liverpool"){
        for (var x = 0; x < areas.length; x++){
//Then change the color dynamically like this:

            areas[x].style.color = team+"Color";
            }

        }

这样我可以完全删除else ifs并清理我的代码:

5 个答案:

答案 0 :(得分:1)

使用这样的对象:

var colors = {
    firstColor: "red",
    secondColor: "blue"
};

div.style.backgroundColor = colors[number+"Color"];

答案 1 :(得分:1)

用户 eval 这样的方法:

//Changes background to red:
div.style.backgroundColor = eval(number+"Color");

//Changes background to blue:
div.style.backgroundColor = eval(number2+"Color");

答案 2 :(得分:0)

你需要这样的东西吗?

$('div').css('background-color', firstColor);

修改

然后你需要这个:

var colors = {
    'first' = 'red',
    'second' = 'blue'
}

var myColor = colors['first'];

答案 3 :(得分:0)

尝试这样的事情:

var colors = {
    "liverpool":"red",
    "barcelona":"green"
};

// Assume you have team = "liverpool"
div.style.backgroundColor = colors[team];

因此,视团队而定,颜色将被应用。

答案 4 :(得分:-4)

JavaScript eval()函数可以帮助...

//Changes background to red:
div.style.backgroundColor = eval(number+"Color");