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

How to access variables dynamically by building a string

本文关键字:访问 变量 动态 字符串 何通过 构建      更新时间:2023-09-26

希望实现这样的目标:

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";

当我尝试这个时,它不适合我,样式不应用。我怎样才能动态地做到这一点呢

编辑:

我有一系列的else if来选择字体文本,这取决于哪个团队被选中。我想创建这样的变量:

 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 if并清理我的代码:

使用如下对象:

var colors = {
    firstColor: "red",
    secondColor: "blue"
};
div.style.backgroundColor = colors[number+"Color"];

用户 eval 方法:

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

你需要这样的东西吗?

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

编辑

那么你需要这个:

var colors = {
    'first' = 'red',
    'second' = 'blue'
}
var myColor = colors['first'];

试试这样:

var colors = {
    "liverpool":"red",
    "barcelona":"green"
};
// Assume you have team = "liverpool"
div.style.backgroundColor = colors[team];

因此,根据团队的不同,颜色将被应用。

JavaScript eval()函数可以帮助您…

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