你data里面的数据结构是怎么样的?data.d,是一个数组结构,data.d[0].name才有值... 你的each里面的value是遍历的data的每一个元素,,结构好像不对。。 value[0].name
不行的
@hslgmq: 贴Q私聊
@hslgmq:JSON格式,确实不规范。。 必须是双引号的
不知道你的后台设置了响应体的类型没:content-type:application/json
或者在前台用JSON.parse(data)转成有效的json格式。
我已经指定数据类型是json,干嘛还要parse转,这样肯定报错了就
$.each();这个方法是 网页中存在对象,才可以用。应该用 for循环吧
嗯?没懂!
$.each(data,function(n,value)){} 换成 for循环
@背叛的冲刷: 不行,试过了
data=eval("("+data+")")
@背叛的冲刷: 后台传递的本来就是json类型格式的,为什么还要用eval()??
你在alert(data.d);后面加上一句话:
data.d = eval(data.d);
下面each遍历的时候怎么弄?
@hslgmq: 只需要加这句话,其余的不用动
@刘宏玺: 这样下面html拼接出来的全是undefined了
@hslgmq: 其实主要问题在于你的json不标准,你的json里面用的是单引号,然后data.d竟然还解析成了string类型,你还是先研究下json吧
@刘宏玺: 单引号不行吗
@hslgmq: http://baike.baidu.com/link?url=xgG7AYeYDJyJMClW7HIMRRB-vHsRsHE3g-bfhs23mtcHu-f0VWTSVXDrG_Fdp7LFYO07KTF431XpMtPxdnByu_
@刘宏玺: 最开始key\value我也用过双引号啊,遍历的时候还是undefined
@hslgmq: 你把返回的json在线测试一下,看看有问题没有http://www.bejson.com/
@刘宏玺: 嗯,单引号解析不通过。
首先你不是标准的json,取出的string用JSON.parse(data.d)之后console.log(),看看是不是object数组
后天必须用反斜杠表示双引号,规范json的格式。或者,在前台使用eval("("+result+")")转换成一个JavaScript对象。
你这返回的不是标准的json格式,json格式是以{}包括的,你这多了[],你吧[]去掉然后JSON.parse试试
chartJson["M1"] 试一下这种写法
你这里的循环用的是$.each(data,function(n,value)){}
看看这个你循环的是data ,而你的数据在data.d中,当然找不到了 ,
你换成$.each(data.d,function(n,value)){} 试试看! 推荐技术类公众号CodeL
var row = eval(data);
for (var i = 0; i < row.length; i++) {
var addOption = document.createElement("option");
addOption.text = row[i]["model"];
addOption.value = row[i]["model"];
document.getElementById("ddlModel").add(addOption);
}