2013-09-18 5 views
-2

Хорошо, сначала позвольте мне описать мой HTML.

У меня есть имя и идентификатор выбранного списка, как upload_Gcat, который имеет три варианта. Затем у меня есть имя и идентификатор выбранного списка, как upload_album. Я хочу, чтобы при изменении upload_Gcat upload_album меняет свои параметры в соответствии с тем, что было выбрано. Я получил свой запрос для работы до удаления старого. Но когда он достигает моей функции $ .each, это не работает.

Я пробовал разные строки кода внутри функции $ .each, даже пытался использовать плохой способ отладки оповещений, при этом не появлялось предупреждение в то время как внутри $ .each.

var new_options = new Array(); 
new_options["album1"] = "album1"; 
new_options["album2"] = "album2"; 
new_options["album3"] = "album3"; 

var select = $('upload_album'); 
if(select.prop){ 
    var options = select.prop('options'); 
} 
else{ 
    var options = select.attr('options'); 
} 

$('option', select).remove(); 

$.each(new_options, function(key, value) { 
    options[options.length] = new Option(value, value); 
}); 
+4

Массивы не являются ассоциативными в JS, вместо этого используйте объект: var var_new_options = {}; ' – Krzysiek

+1

_" Хорошо, сначала позвольте мне описать мой html "_ - картинка стоит тысячи слов. Или, в этом случае, почему бы вам не показать разметку для рассматриваемых элементов? – nnnnnn

+0

Кроме того, '$ .each' имеет итераторную подпись' function (index, object) '. – Brian

ответ

0

Вы можете попробовать это (используйте object вместо array, JavaScript не поддерживает ассоциативный массив)

var new_options = {}; // an empty object 
new_options["album1"] = "album1"; 
new_options["album2"] = "album2"; 
new_options["album3"] = "album3"; 

var select = $('#upload_album').empty(); 
$.each(new_options, function(key, value) { 
    var newOption = $('<option/>', {'value':key, 'text':value}); 
    select.append(newOption); 
}); 

DEMO. Кроме того, проверьте Working with objects на MDN.

+0

Большое спасибо, это сработало отлично. –

+0

Добро пожаловать :-) –

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