javascript - 将结果从 .getJSON() 传递到另一个函数导致未定义

标签 javascript json jquery

大家好

我正在使用 jQuery 的 .getJSON() 方法从数据库中提取一些数据(通过 PHP 脚本)。这一切都很好,数据返回正常且符合预期。当我尝试将数据传递给辅助函数时会出现问题,无论我如何尝试访问该数据的值,它们返回时都是未定义的。我有一种感觉,我忽略了一些非常简单的事情,但经过大量的试验和错误,我来到 SO 要求额外的眼睛。

这是一个简单的 JavaScript 代码示例。

  function fnCheck_Vis(Row, sField, sMode)
  {
    sField = sField+"_vis";
    sTest = Row.sField.val();
    alert(sTest); // Comes back as undefined.
  }

  $(document).ready(function()
  {
    $("#btnSearch").click(function()
    {
      $("#divResults").empty();
      var ssearch = $("#ssearch").val();
      var i = 0;
      $.getJSON("get_results.php?keywords=" + ssearch,
      function(Data)
      {
        var iRec = 0;
        $.each(Data, function(i, Row)
        {
          fnCheck_Vis(Row, "slinkpic1", "Int");
          var content = Row.slast;
          $("#divResults").append(content);
          iRec++;
        });
        alert(iRec + " records retrieved using AJAX.");            
      });
    });
  });

fnCheck_Vis() 函数的第一部分工作正常,“_vis”附加到字段名称,这是正确的行为。无论我如何尝试访问数据集(行)中的该成员,我都无法取回值。

我非常感谢可以就此问题提供的任何见解。

谢谢,

尼古拉斯

最佳答案

您似乎想要访问 Row 的属性,其名称存储在 sField 中,而不是其实际的 sField 属性。尝试:

function fnCheck_Vis(Row, sField, sMode)
{
    sField = sField + "_vis";
    var sTest = Row[sField];
    alert(sTest);
}

关于javascript - 将结果从 .getJSON() 传递到另一个函数导致未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4855587/

相关文章:

javascript - 使用 JavaScript 连接到 Oracle DB

javascript - Angular $http - 在接收响应数据时处理它

Python 解码 JSON 中的嵌套 JSON

javascript - 用 div 切换值

javascript - jQuery 与prototype.js 冲突: Calender icon is not popping up

javascript - 如何将 HTML 页面下载为图像?

javascript - React/Next.js 如何在按钮点击时获取其他 Element 事件目标值

json - 创建动态范围变量

jquery - 如何让 JQuery Autocomplete 与 Ajax 和 JSON 配合使用?

javascript - 随机谷歌未定义错误