未捕获的类型错误:无法使用“in”运算符在
Posted
技术标签:
【中文标题】未捕获的类型错误:无法使用“in”运算符在【英文标题】:Uncaught TypeError: Cannot use 'in' operator to search for 'length' in 【发布时间】:2015-07-27 23:10:59 【问题描述】:未捕获的 TypeError: 无法使用 'in' 运算符在 in 中搜索 'length' "
这是我尝试对此 JSON 对象执行 $.each
时收到的错误:
"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 个空格。
【参考方案1】:
in
运算符仅适用于对象。您在字符串上使用它。在使用$.each
之前,请确保您的值是一个对象。在这种特定情况下,您必须parse the JSON:
$.each(JSON.parse(myData), ...);
【讨论】:
Felix,在 $.each 之前我有 JSON.parse ,当密钥提交中有值时出现错误 -> "codParameters?___DDSESSIONID\u003d14EA4721A904D6DD71591156996E29F7%3A%2FMobilTest"。 请发布您的代码,我无法重现您描述的错误:jsfiddle.net/5asbeatq 如果不是答案,请勿发布。 Edit your question 并在问题中包含相关代码。 浪费了 2 个小时,终于用validator.showErrors(JSON.parse(data))
让它工作了,非常感谢先生..
我得到这个错误 $.each("ul li",function(k,v) ... );【参考方案2】:
也许你忘记在 $.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 );
);
【讨论】:
对我来说就是这样。谢谢!【参考方案3】:唯一对我和$.each
有效的解决方案 肯定会导致错误。所以我使用了for loop
,它不再抛出错误了。
示例代码
$.ajax(
type: 'GET',
url: 'https://example.com/api',
data: get_param: 'value' ,
success: function (data)
for (var i = 0; i < data.length; ++i)
console.log(data[i].NameGerman);
);
【讨论】:
【参考方案4】:这对我有用
$.each(JSON.parse("[" + data + "]"))
$.each
仅适用于对象。如果你的数据是一个数组,你可以像这样改变它
$data = (object)$array;
【讨论】:
这并没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review以上是关于未捕获的类型错误:无法使用“in”运算符在的主要内容,如果未能解决你的问题,请参考以下文章
Jquery - 未捕获的类型错误:无法使用“in”运算符在中搜索“324”
未捕获的类型错误:无法使用“in”运算符在未定义的 vue 路由器中搜索“路径”
未捕获的类型错误:无法使用“in”运算符在 JSON 字符串中搜索“”
未捕获的类型错误:无法使用“in”运算符在 null 中搜索“SUPPORT_COOKIES”