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

 张梦蒙4428 发布于 2023-02-12 19:00

我在按下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"的是以下形式的JSON数组:

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

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

    1 个回答
    • 我相信你得到了一个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>";
      
      });
      

      要么

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

      2023-02-12 19:03 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    热门标签
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有