0

我正在尝试将 JSON 文件的内容添加到组合框中。这很好用,但是组合框的某些行有多个值(例如,'印地语、英语、法语'都在一行上),因为在 JSON 中输出的某些字段中有多个值。我试图在将数组注入组合框之前拆分数组,以便每个值都在自己的行上,但我不确定将拆分数组函数放在哪里。谁能指出我正确的位置?谢谢!

 $('#combolist-languages').html(function () {

            var ret = '<option value="-1" selected>Select language_</option>',
                u = user.slice(),
                arr = [];

            (function get() {
                if (u.length) {
                    var v = u.shift();      

                    if ($.inArray(v.Languages, arr) == -1) {

                        arr.push(v.Languages);
                        ret += '<option value="">' + v.Languages + '</option>';
                    }
                    get();
                }
            }());

            return ret;
        });
4

2 回答 2

0

我不确定我是否完全理解你,但我认为你想多了

$('#combolist-languages').html(function () {

    var ret = '<option value="-1" selected>Select language_</option>',
        arr = [];

    $.each(user, function(i, v) {
        if ($.inArray(v.Languages, arr) === -1) {
            arr.push(v.Languages);
            ret += '<option value="">' + v.Languages + '</option>';
        }
    });

    return ret;
});
于 2013-09-05T18:25:52.510 回答
0

这实际上取决于您的 JSON 文件结构,但我猜您可以使用函数 is_object 和 is_array 来查找值是否是单独的。

我猜在 var v = u.shift(); 之后 你可以:

if(is_object(v)){
    $.each(v.split(','), function(index, item){
        arr.push(item.Languages);
        ret+= '<option value="">' + item.Languages + '</option>';
    }
}

现在这可能是错误的,因为我真的不知道您的 JSON 对象是如何构造的。

于 2013-09-05T18:27:32.023 回答