9

假设我从后端服务层返回了这些数据:

[“2”、“3”、“7”、“14”]

第一个问题。这是否被认为是有效的 JSON 数据?Json.org说它是,但我在 Google、SO 等上找不到任何对它的引用...

值的有序列表。在大多数语言中,这被实现为数组、向量、列表或序列。

我希望能够获取这些值并使用 JQuery 将它们添加到已经存在的 DropDownList 对象 OnLoad 中。

$.getJSON("http://www.example.com/path-to-get-data", function(data) { 
  //iterate through each object and add it to the list.
  //ideally, the key and value (string to display to the end user) would be the same.
});

我看了一下这个线程,但它有对象,而不仅仅是一个数组。我应该使用parseJSONvsgetJSON吗?

提前致谢!

4

6 回答 6

13
var arr = [ 2, 3, 7, 14];
$.each(arr, function(index, value) {
     ('#myselect').append($('<option>').text(value).attr('value', index));
});

还请看C先生的解决方案:

$('<option></option>').val(item).html(item)

他操纵options 的方式对我来说是新的,而且更优雅。

于 2013-09-28T03:35:29.140 回答
10

我的解决方案是基于Blaise 的想法。

//populate the Drop Down List
$.getJSON("http://www.example.com/api/service", function (data) {
     $.each(data, function (index, item) {
         $('#dropDownList').append(
              $('<option></option>').val(item).html(item)
          );
     });
 });
于 2013-09-30T20:06:54.867 回答
2

这不是正确的 JSON,它必须是这种风格:

{"0": "2", "1" : "3", "2" : "7", "3" : "14"}

您可以使用该示例来进行响应:

var response = "[2, 3, 7, 14]";
eval("var tmp = " + response); 
console.log(tmp); 
于 2013-09-28T03:43:22.593 回答
1

这是 HiddenField 声明,对存储 JSON 字符串很有用

   <asp:HiddenField ID="hdnBankStatus" runat="server" />

这是下拉列表声明

   <select id="optStatus" name="optStatus" runat="server">
        </select> 

这些行将使用排序列表初始化 Hiddenfield 值(假设该列表包含按排序顺序的键值对),然后使用 JSON 序列化程序对其进行序列化

   sl = new SortedList();
   hdnBankStatus.Value = jsonSerialiser.Serialize(sl);

这些行将一一使用 JSON 字符串的元素,并使用值填充下拉列表。

   $(document).ready(function () {  

   var myOptions = $.parseJSON($('#hdnBankStatus').val());
        var mySelect = $('#optStatus');
        $.each(myOptions, function (val, text) {
            mySelect.append(
    $('<option></option>').val(text).html(val)
        );
        });
   }
于 2014-05-22T13:42:02.897 回答
0
 var arr = [ 2, 3, 7, 14];
 var dropdown = ('#myselect');
 dropdown.empty();
 dropdown.append($('<option value=''>--Please Select--</option>'));
 $.each(arr, function(index, value) {
 dropdown.append($('<option value='+index+'>'+value+'</option>'));
 });`
于 2017-10-12T12:23:18.793 回答
-4

对我来说,这个工作。

$("#ddlCaseType").append("<option>" + txt + "</option>");
于 2015-07-22T10:47:23.680 回答