有没有办法在javascript或jquery中创建变量选择器?

时间:2015-01-30 14:01:01

标签: javascript jquery html

有没有办法在javascript或jquery中创建变量选择器?

var myColor1 = "#009";
var myColor2 = "#900";
var myColor1L = "#d0d"
var myColor2L = "rgb(255,100,0)";
myFunc(myColor1);
function myFunc(c){
myDiv1.style.backgroundColor = c;
myDiv2.style.backgroundColor = getVarByName(c+"L");
}

结果应该是myDiv1的背景颜色是#009,
和myDiv2的背景颜色是#d0d。

抱歉语法错误!

4 个答案:

答案 0 :(得分:4)

您应该使用Object来存储这些值:

var colors = {
    myColor1 : "#009",
    myColor2 : "#900",
    myColor1L : "#d0d",
    myColor2L : "rgb(255,100,0)"
}

myFunc('myColor1');

function myFunc(c){
    myDiv1.style.backgroundColor = colors[c];
    myDiv2.style.backgroundColor = colors[c+"L"];
}

答案 1 :(得分:1)

您可以使用:

window["myColor1"+"L"]

答案 2 :(得分:1)

您无法获取调用函数的变量的名称,因为只有变量的值才会发送到函数。来到函数时,该值不会保留名称,它只获取与其关联的参数的名称。

您可以将两个值放在同一个变量中,而不是尝试查找另一个变量。这可以是包含两个项的数组,也可以是具有两个属性的对象:

var myColor1 = { dark: "#009", light: "#d0d" };
var myColor2 = { dark: "#900", light: "rgb(255,100,0)" };

myFunc(myColor1);

function myFunc(c){
  myDiv1.style.backgroundColor = c.dark;
  myDiv2.style.backgroundColor = c.light;
}

这样你就不必以特殊方式命名变量。您甚至不必将值放在变量中,只需使用值调用该函数:

myFunc({ dark: "#900", light: "#fc5" });

答案 3 :(得分:0)

尝试Jquery var output = $(" selector")。css(" property");

在你的情况下它会是这样的 var output = $("#myDiv1")。css(" background")