2012-11-04 157 views
0

我有这样的JSON字符串使用JSON变量(出来一个DataSet,1列的-showing仅有2为示例 - 几行)动态选择元素

{"Tables":[{"Rows":[{"Column1":"UserNumer1"},{"Column1":"UserNumber2"}]}]} 

如何使用这些值在我动态填充select value

$('<option>').val('UserNumer1').text('UserNumer1').appendTo('#selectID'); 

我要附加价值,如果JSON字符串具有(在这种情况下,用户)10行,我想jQuery的追加到我SELECTID所有行。被告知最好appendTo只是一次,而不是做一个互动。

谢谢!

基于答案的编辑。

为了快速测试的目的,我在我的页面上加载了这个设置。

jsonString = GetParsedData(); 

现在,jQuery脚本。

$(function() { 
     var obj = <%=jsonString%>; 
     var html = ""; 
     for (var i = 0; i < obj.Tables.length; i++) { 
      html += '<option value="' + obj.Tables[i].Column1 + '"> ' + obj.Tables[i].Column1 + '</option>'; 
     } 
     $(html).appendTo('#selectID'); 
    }); 

是没有得到填充的列表,所以我尝试了萤火虫,和一个断点后,我得到这样的结果的变量HTML

"<option value="undefined"> undefined</option>" 

了var obj是OK

{"Tables":[{"Rows":[{"Column1":"UserName1"},{"Column1":"UserName2"}]}]}; 

我在这里错过了什么吗?非常感谢。

除了“未定义”这是错误的,它甚至没有追加它。菜单列表为空。

回答

3
var table; for (var i=0; i< resp.Tables.length; i++){ 
    table = resp.Tables[i]; 
    for(var j=0;j<table.Rows.length; j++){ 
      $('<option>').val(table.Rows[j].Column1).text(table.Rows[j].Column1).appendTo('#selectID'); 
    } 
    } 

我建议你更快的方法。

var html = ""; 
    for (var i=0; i< resp.Tables.length; i++){ 
    table = resp.Tables[i]; 
    for(var j=0;j<table.Rows.length; j++){ 
     html +='<option value="'+ table.Rows[j].Column1 +'"> '+ table.Rows[j].Column1 +'</option>'; 
    } 
    } 
$(html).appendTo('#selectID'); 
+0

尝试过,请在原始帖子中查看版本。谢谢 –

+0

您更改了JSON对象的格式。我相应地修改了我的代码。 – Anoop

+0

不工作。编辑完成后,现在html完全是空的。而JSON对象(var obj在这里)从未被修改过。我复制并粘贴了你的代码,改变了对obj的响应,不,没有工作。任何线索? –