使用html select中的值在javascript中选择特定数组

时间:2015-11-04 11:44:06

标签: javascript jquery arrays

我有许多包含多个值的数组。

 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值同名的变量?

2 个答案:

答案 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数组对象的引用。