使用javascript对象时“G未定义”

时间:2010-03-29 14:44:20

标签: javascript jquery

我正在使用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数据。任何人都可以指出它为什么会出现在我身上吗?

感谢。

1 个答案:

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

    }

}