2012-02-06 78 views
0

我疯了试图绑定json字符串到下拉列表。请有人帮忙?代码绑定JSON字符串到下拉列表

我的下拉列表ID为 'ddlteams'

我的JSON字符串是这种形式:

"{"TeamList" : [{"teamid" : "1","teamname" : "Barcelona"}]}" 

所以首先我转换成一个对象。

var objdata = $.parseJSON(jsonObj.d); 

然后我添加我的代码给下面。

$('#ddlteams').children().remove(); 

我遇到了下面的代码问题。请有人可以帮我这个

$.each(objdata, function(i, val) { 
    $('#ddlteams').append('<option value="' + objdata.TeamList[0].teamid + '">' + TeamList[0].teamname + '</option>'); 
}); 
+0

假设'objdata'是解析JSON,'i'将' “团队列表”'和'val'是数组。看看'each'的文档。只需在'objdata.TeamList'上正常迭代即可。 – 2012-02-06 19:20:43

+0

嗨费利克斯,抱歉,但我没有得到你。我需要用“TeamList”替换我吗? val是关键字吗? – jith10 2012-02-06 19:24:37

+0

您正在使用'$ .each',但它似乎并不知道它是如何工作的。它将迭代传递数组的对象或元素的每个属性。属性名和它的值作为参数传递给回调函数,在你的情况下''''和'val'。 – 2012-02-06 19:29:25

回答

4

尝试

$.each(objdata["TeamList"], function(i, val) { 
    $('#ddlteams').append('<option value="' + val.teamid + '">' + val.teamname + '</option>'); 
}); 
+0

嗨,似乎工作,但我得到未定义的下拉列表中。 – jith10 2012-02-06 19:31:17

+0

val.teamid是正确的选项? – jith10 2012-02-06 19:31:34

+0

也许'$('#ddlteams')。append('');'?我会尽力重现您的工作内容,并帮助您实现目标。 – Will 2012-02-06 19:40:29