-2

好的,首先让我描述一下我的 HTML。

我有一个选择列表名称和 ID 作为 upload_Gcat,它有三个选项。然后我有一个选择列表名称和 ID 作为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

1 回答 1

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

演示。此外,请检查在 MDN 上使用对象。

于 2013-09-19T00:08:04.723 回答