有没有办法在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。
抱歉语法错误!
答案 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")