我有许多包含多个值的数组。
var ab = [".inb", ".bhm", ".bab", ".mdr"];
var bc = [".thc", ".lsl", ".cma", ".vth"];
var de = [".myh", ".rte", ".bab", ".tzs"];
etc
我使用select来指定在菜单上更改css值来迭代哪个数组
$('#browse2').on('change', function () {
// the value of #browse2 would be ab or bc or de etc
var fv = $('#browse2').val();
for (i = 0; i < fv.length; ++i) {
$(fv[i]).css('opacity', '1.0');
}
});
但不幸的是,这段代码只通过fv值本身(即:ab),它没有用相同的变量名调用数组。如何告诉 for 语句使用与fv值同名的变量?
答案 0 :(得分:2)
我建议你将数组存储为对象的属性。您可以使用括号表示法访问它们:
var obj = {
ab: [".inb", ".bhm", ".bab", ".mdr"],
bc: [".thc", ".lsl", ".cma", ".vth"],
de: [".myh", ".rte", ".bab", ".tzs"]
};
$('#browse2').on('change', function () {
var fv = $('#browse2').val();
for (i = 0; i < obj[fv].length; ++i) {
$(obj[fv][i]).css('opacity', '1.0');
}
});
答案 1 :(得分:0)
更改此行:
var fv = $('#browse2').val();
要:
var fvValue = $('#browse2').val();
var fv;
switch(fvValue){
case "ab": fv = ab; break;
case "bc": fv = bc; break;
case "cd": fv = cd; break;
}
基本上在fv
中存储了一个“ab”字符串而不是对ab
数组对象的引用。