我正在使用javascript对象根据之前的输入填充下拉列表。
我的对象如下所示:
var cars = {
'A.C.' : ["16","16/80","16/90","2 Litre","2-1","3 Litre","428","Ace","Aceba","Cobra","Greyhound","Me","Shelby"],
'Alfa Romeo' : ["145","146"]
}
它比那更重要但是你得到了这个主义。在我尝试使用数据填充基于制造商的下拉列表之前,一切正常。我填充下拉列表的jQuery代码如下所示:
function populateModelDropdown(manufacturer) {
//clear the old dropdown values
$('#carModel').html("");
//getthe previous selection if one exists
var prevSelection = $("#carModel_hidden").val();
$.each(cars[manufacturer], function(val, text) {
if (text == prevSelection) {
$('#carModel').append(
$('<option selected></option>').val(text).html(text));
}
else {
$('#carModel').append(
$('<option></option>').val(text).html(text));
}
});
}
但是,只要我进入每个循环,就会收到来自文件“jquery-tools.js”的错误“G is undefined”,这是一个我不接触的jquery库。
我看到之前发生过这个问题但是使用了JSON数据。任何人都可以指出它为什么会出现在我身上吗?
感谢。
答案 0 :(得分:1)
一个简单的for循环完成了这项工作!
function populateModelDropdown(manufacturer) {
if (manufacturer.length > 0) {
$('#carModel').html("");
var prevSelection = $("#carModel_hidden").val();
for (var i=0; i < cars[manufacturer].length; i++) {
var model = cars[manufacturer][i];
if (model == prevSelection) {
$('#carModel').append(
$('<option selected="selected"></option>').val(model).html(model));
}
else {
$('#carModel').append(
$('<option></option>').val(model).html(model));
}
}
}
}