【问题标题】:Cannot use 'in' operator to search for 'length' in false无法使用“in”运算符在 false 中搜索“length”
【发布时间】:2017-11-01 04:46:28
【问题描述】:

我试图用其他主题的答案来解决这个问题,但我不能,我的浏览器控制台中只有一个错误,但一切正常:

Uncaught TypeError: Cannot use 'in' operator to search for 'length' in 
false

这里是我的 JS:

$("select[name=categoria]").change(function(){
    valorBuscar = $(this).val();
    mostrarDatos2(valorBuscar);
 });

}

function mostrarDatos2(valorBuscar){

  $.ajax({
    url : "http://localhost/empresa/CategoriaC/mostrarCat",
    type: "POST",
    data: {categoria: valorBuscar},
    dataType:"json",

    success:function(response){
        filas = "";
        $.each(response.cat,function(key,item){ //<= here is the error
            filas+="<tr><td><input type='checkbox' id='check' 
            value="+item.correo+"></td><td>"+item.contacto+"<br 
            />"+item.correo+"<br />"+item.nombre_empresa+"</td></tr>";
           });
           $("#tbclientes tbody").html(filas);

         }
      });

   }

【问题讨论】:

  • 可能 response.cat 是假的
  • 那么哪一行导致了这个错误?语法看起来无效,所以我很惊讶这完全有效
  • 如果你有一个错误,那么一切不是好的
  • 您是否收到任何带有该错误的堆栈跟踪?
  • 尝试记录 response.cat 并查看您得到的响应

标签: javascript jquery ajax


【解决方案1】:

$.each 只能用于对象 首先检查它是否是一个对象 类似问题:Uncaught TypeError: Cannot use 'in' operator to search for 'length' in

编辑:如果将整个内容放在 if() 语句中,加载错误会消失吗?

if( typeof response.cat == "object" ){ $.each(response.cat,function(key,item){ ... } }

【讨论】:

  • 没有DV,但这是有道理的。您应该将帖子标记为重复,而不是链接到有关此主题的另一个答案
  • 我说它是相似的,我没有说它是重复的,因为所有的 DV,我没有足够的声誉来标记为重复,谢谢!
  • 另一个帖子仍然没有明确的答案,我尝试了该帖子的建议,但仍然有错误。
  • 没关系,你有一个重复的标记选项。但如果你不相信这是重复的,只是相似的,那我没关系
  • @NickTimmer 非常感谢!使用 if 语句控制台再次清晰!
猜你喜欢
  • 2016-03-03
  • 2019-10-10
  • 1970-01-01
  • 1970-01-01
  • 2018-01-10
  • 2012-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多