【问题标题】:JQuery ajax get call and dropdown menusJQuery ajax 获取调用和下拉菜单
【发布时间】:2014-09-05 22:18:52
【问题描述】:

我这里有这段代码,它进行 ajax 调用并将数据放在下拉菜单中,但我有两个值,一个 id 和一个名字,就像这样(来自我的console.log):

Name Gary 
Id 2 
Name Joe 
Id 7 
Name Kevin 
Id 5 
Name Paul 
Id 1 
Name Rocco 
Id 11 
Name Will 
Id 15 

我正在尝试将 id 作为值和名称作为下拉菜单中的标签:

$.get("/api/name/getNames", function (data) {
            var mySelect = $('#id');
            $.each(data, function () {
                $.each(this, function (k, v) {
                    console.log(k + " " + v);
                    mySelect.append($('<option></option>').val(v).html(v));
                });
            });
        });

但在我的下拉列表中它返回

Gary
2
Joe
7
Kevin
5
Paul
1
Rocco
11
Will
15

如何将 id 作为值,将名称作为下拉菜单的标签?

这里是有问题的下拉列表:

<label for="id">Name</label>
                    <select id="id" name="id" class="form-control">
                        <option>-- Select Name --</option>
                    </select>

【问题讨论】:

    标签: jquery ajax drop-down-menu


    【解决方案1】:

    第二个.each 循环是否必要?如果它们是对象,您可以像这样执行一个 .each 循环:

    $.get("/api/name/getNames", function (data) {
        var mySelect = $('#id');
        $.each(data, function (index, el) {
            mySelect.append($('<option></option>').val(el.Id).html(el.Name));
        });
    });
    

    【讨论】:

    • 我也想知道同样的事情,但我们(还)不知道数据是什么样的。
    【解决方案2】:

    你试过这样修改代码吗?

    mySelect.append($('<option value="' + v + '">' + k + '</option>'));
    

    你不需要用函数设置值和标签,你可以把它们直接放到你正在生成的标签中。

    另外,您可能不正确地迭代数据,但如果没有看到您从 $.get 调用中返回的数据,我无法确定。

    【讨论】:

    • 这不是我要找的,我希望将实际的 id 号作为值,将实际名称作为选项的标签。
    • 这就是我想要告诉你的。你试过了吗?
    【解决方案3】:

    实际上你需要阅读每一行和以下行才能正确理解它

    这是正确的 jsfiddle:http://jsfiddle.net/w57drLb6/

    var mySelect = $('#id');
     var lines = data.split("\n");
    
       for(var i=0; i<lines.length; i = i+2)
       {
          mySelect.append($('<option></option>').val(lines[i+1].replace('Id ', '')).html(lines[i].replace('Name ', '')));
       }    
    

    如果回答了您的问题,请标记为回答

    【讨论】:

    • 我假设你从 ajax 调用中得到了纯文本
    猜你喜欢
    • 2013-01-20
    • 1970-01-01
    • 1970-01-01
    • 2014-09-06
    • 1970-01-01
    • 1970-01-01
    • 2012-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多