我有这个JSON字符串(来自DataSet,1列,几行 - 示例中仅显示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');
});
列表没有填充,所以我尝试了firebug,在断点后我得到了变量html的结果
"<option value="undefined"> undefined</option>"
var obj没问题
{"Tables":[{"Rows":[{"Column1":"UserName1"},{"Column1":"UserName2"}]}]};
我在这里遗漏了什么吗?非常感谢。
除了de“undefined”这是错误的,它甚至没有附加它。菜单列表为空。
答案 0 :(得分: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');