2014-12-09 4 views
2

ВОПРОСКак заполнить массив javascript из выпадающего списка выбранного значения?

Как я могу заполнить myArray с одним из массивов, перечисленных и изменить его, используя выбранный вариант в списке?

Использование JavaScript или JQuery

<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 только значение строки, и мне нужно выбранное значение, чтобы быть одним из яваскрипта переменных.

ответ

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

+0

Извините, забыли добавить' .val() 'в ch var assignation – theLibertine

+0

отредактировал мой код, не могли бы вы удалить downvote? Это не первый случай, когда кто-то забывает какую-то часть кода в операции копирования/вставки. Спасибо – theLibertine

Смежные вопросы