“未捕获的TypeError:在jQuery中无法读取null的属性’length’

我在按下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 += '
  • ' + result["results"][i]["label"] + '
  • '; } list = "Here are some results:
      " + list + "
    "; }); });

    到达“result”的是以下forms的JSON数组:

     {"results":[{"label":"something"},{"label":"something else"},{"label":"many other ones"}]} 

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

    我相信你得到了一个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 += '
  • ' + result["results"][i]["label"] + '
  • '; } list = "Here are some results:
      " + list + "
    "; });

    要么

     $(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 += '
  • ' + result["results"][i]["label"] + '
  • '; } list = "Here are some results:
      " + list + "
    "; });