Javascript &引用;未捕获类型错误:无法读取属性';长度';“无效”的定义;在jQuery中

Javascript &引用;未捕获类型错误:无法读取属性';长度';“无效”的定义;在jQuery中,javascript,jquery,json,Javascript,Jquery,Json,我定义了在按下HTML上的按钮时发生的以下操作: $(document).ready(function() { $("#query").keydown(function () { // stuff $.get(url, function (result) { console.log(result); var list = ""; for (var i = 0, l = result["results"].length; i < l; i++)

我定义了在按下HTML上的按钮时发生的以下操作:

$(document).ready(function() {
  $("#query").keydown(function () {
    // stuff
    $.get(url, function (result) {
    console.log(result);

    var list = "";

    for (var i = 0, l = result["results"].length; i < l; i++) {
      list += '<li>' + result["results"][i]["label"] + '</li>';
    }

    list = "Here are some results: <ul>" + list + "</ul>";

  });
});

那么,为什么我对
length
的引用被解释为对空值属性的引用呢?

我相信您得到了一个json输入。您忘记将json转换为实际的Javascript对象。您可以使用以下两种方法之一来执行此操作

$(document).ready(function() {
  $("#query").keydown(function () {
  // stuff
    $.get(url, function (result) {
    result = JSON.parse(result);
    console.log(result);

    var list = "";

    for (var i = 0, l = result["results"].length; i < l; i++) {
      list += '<li>' + result["results"][i]["label"] + '</li>';
    }

  list = "Here are some results: <ul>" + list + "</ul>";

});
$(文档).ready(函数(){
$(“#查询”).keydown(函数(){
//东西
$.get(url、函数(结果){
result=JSON.parse(result);
控制台日志(结果);
var list=“”;
对于(变量i=0,l=result[“results”]。长度;i';
}
list=“以下是一些结果:
    ”+list+“
”; });

$(文档).ready(函数(){
$(“#查询”).keydown(函数(){
//东西
$.getJSON(url、函数(结果){
控制台日志(结果);
var list=“”;
对于(变量i=0,l=result[“results”]。长度;i';
}
list=“以下是一些结果:
    ”+list+“
”; });
试试
console.log(typeof result)
告诉我们它说了什么。它有两行:“object”,后跟“undefined”。看起来你必须转换一个console.log怎么能产生两行?
$(document).ready(function() {
  $("#query").keydown(function () {
  // stuff
    $.get(url, function (result) {
    result = JSON.parse(result);
    console.log(result);

    var list = "";

    for (var i = 0, l = result["results"].length; i < l; i++) {
      list += '<li>' + result["results"][i]["label"] + '</li>';
    }

  list = "Here are some results: <ul>" + list + "</ul>";

});
$(document).ready(function() {
  $("#query").keydown(function () {
  // stuff
    $.getJSON(url, function (result) {
    console.log(result);

    var list = "";

    for (var i = 0, l = result["results"].length; i < l; i++) {
      list += '<li>' + result["results"][i]["label"] + '</li>';
    }

  list = "Here are some results: <ul>" + list + "</ul>";

});