Uncaught TypeError:无法使用'in'运算符在其中搜索'length'


101

未捕获的TypeError:无法使用“ in”运算符在“

这是我尝试$.each对此JSON对象执行操作时收到的错误:

{"type":"Anuncio","textos":["Probando esto","$ 20150515"],"submit":"codParameters?___DDSESSIONID\u003d14EA4721A904D6DD71591156996E29F7%3A%2FMobilTest"}

我也尝试对stringify执行相同的操作,但收到相同的错误:

{\"type\":\"Anuncio\",\"textos\":[\"Probando esto\",\"$ 20150515\"],\"submit\":\"codParameters?___DDSESSIONID\\u003d06CBEC9D1A53616EFF703A8C71FBC2B4%3A%2FMobilTest\"}"

如果我___DDSESSIONID\\u003d06CBEC9D1A53616EFF703A8C71FBC2B4%3A%2FMobilTest从对象中删除参数,则$ .each可以正常工作。

为什么会这样呢?


4
请格式化您的代码,无法像这样阅读。您可以使用{}文本编辑器按钮,或在每个代码行缩进4个空格。
锡德2015年

Answers:


235

in操作仅适用于对象。您正在字符串上使用它。使用之前,请确保您的值是一个对象$.each。在这种情况下,您必须解析JSON

$.each(JSON.parse(myData), ...);

Felix,在$ .each之前,我有JSON.parse,在键提交中具有值->“ codParameters?___ DDSESSIONID \ u003d14EA4721A904D6DD71591156996E29F7%3A%2FMobilTest”时,会出现错误。
伊万·阿尔贝托·丰塔尔沃·萨尔加多2015年

请发布您的代码,我无法再现
Felix Kling,

2
如果答案不是一个,请不要发布。编辑您的问题,包括相关的代码的问题。
菲利克斯·克林

浪费了2小时,终于得到了它的工作使用validator.showErrors(JSON.parse(data)),非常感谢主席先生..
穆罕默德·苏菲安

我收到$ .each(“ ul li”,function(k,v){...})的错误消息;
Cr1xus

18

也许您忘记在$ .ajax中添加参数dataType:'json'

$.ajax({
   type: "POST",
   dataType: "json",
   url: url,
   data: { get_member: id },
   success: function( response ) 
   { 
     //some action here
   },
   error: function( error )
   {
     alert( error );
   }
});

做到了。谢谢!
路易斯·洛克
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.