2014-12-09 127 views
2

问题如何从下拉列表中选择值填充JavaScript数组?

我怎么能填充myArray与列出的阵列中的一个,并使用下拉列表中选择的选项改变呢?

使用的JavaScriptjQuery的

<select id="ddl"> 
    <option>arr1</option> 
    <option>arr2</option> 
    <option>arr3</option> 
</select> 

var arr1 = ['A', 'B', 'C'], 
    arr2 = ['1', '2', '3'], 
    arr3 = ['X', 'Y', 'Z'], 
    array = document.getElementById('ddl').value; 

//... 
myArray: array 

问题

目前DDL只是一个字符串值,我需要选择的值是JavaScript的变量之一。

回答

4

您可以使用一个对象来存储数组,然后使用下拉列表的字符串值访问该对象。事情是这样的:

var options = { 
    arr1: ['A', 'B', 'C'], 
    arr2: ['1', '2', '3'], 
    arr3: ['X', 'Y', 'Z'] 
} 
var array = options[$('#ddl').val()]; // options[document.getElementById('ddl').value] 

Example fiddle

3

你可以做一个多维数组:

var arr = []; 
arr['arr1'] = ['A', 'B', 'C'], 
arr['arr2'] = ['1', '2', '3'], 
arr['arr3'] = ['X', 'Y', 'Z']; 

var selectedArray = arr[document.getElementById('ddl').value]; 

Example

0

怎么样,使用@Rory McCrossan的概念,并添加正确的值的选项?

<select id="ddl"> 
    <option value="0">arr1</option> 
    <option value="1">arr2</option> 
    <option value="2">arr3</option> 
</select> 

var options =[  
    ['A', 'B', 'C'], 
    ['1', '2', '3'], 
    ['X', 'Y', 'Z'] 
]; 

$('#ddl').change(function() { 

    var ch = $('#ddl').val(); 
    var array = options[ch]; 
    //test 
    alert(options[ch]); 

}); 
+1

你测试过了吗?我将undefined定义为'array' – empiric 2014-12-09 12:08:55

+0

对不起,忘了将'.val()'添加到ch变量赋值 – theLibertine 2014-12-09 12:18:36

+0

编辑我的代码,请您删除downvote?这不是第一次有人在复制/粘贴操作中忘记了一些代码。谢谢 – theLibertine 2014-12-09 15:27:48

相关问题