簡體   English   中英

使用html select中的值在javascript中選擇特定數組

[英]Choosing specific array in javascript using value from html select

我有許多包含多個值的數組。

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

我建議您將數組存儲為對象的屬性。 您將可以在方括號表示法的幫助下訪問它們:

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');
    }

 });

更改此行:

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數組對象的引用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM