“未捕获的TypeError:无法读取null的属性'length'"在jQuery中 [英] "Uncaught TypeError: cannot read property 'length' of null" in jQuery

查看:193
本文介绍了“未捕获的TypeError:无法读取null的属性'length'"在jQuery中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm defining the following action to happen when pressing a button on my 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>";

  });
});

结果"中出现的是以下形式的JSON数组:

What arrives in "result" is a JSON array in the following form:

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

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

So, why is my reference to length being interpreted as a reference to the property of a null value?

推荐答案

我相信您会收到json输入.您忘记了将json转换为实际的Javascript对象.您可以使用以下两种方法之一来做到这一点.

I believe you are getting a json input. You forgot to convert the json into an actual Javascript Object. You can do so with one of the two following ways.

$(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>";

});

这篇关于“未捕获的TypeError:无法读取null的属性'length'"在jQuery中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆