首页 > 解决方案 > 当我第二次调用它时,getJSON 不是一个函数

问题描述

这是我第一次使用jquery。我在这里面临的情况是我需要解析一些 JSON 文件,其 url 由另一个 JSON 文件给出。因此,我使用代码

var GlobalID = {};

function parseID() {
    var data;
    $.getJSON('https://taitk.org/api/algorithms', function(algorithms) {
        GlobalID = algorithms;
        console.log("ID got!");
        parseKeyword();
    });
}

function parseKeyword () {
    for(var i = 0; i < GlobalID.length; i++) {
        $.getJSON('https://taitk.org/api/algorithms/' + GlobalID[i].id, function(subdata) {
            console.log(subdata.data)
        });
    }
}

,其中parseID()是获取每个url的ID的parseKeyword()函数,是打印出每个url的数据的函数(写在回调函数中,从而避免了异步函数调用)。

但是,我得到的错误是keyword.js:31 Uncaught TypeError: $.getJSON is not a function消息“ID 得到了!” 打印成功。此外,当我删除parseKeyword()函数时,代码工作正常,这让我感到困惑,因为第一次getJson()调用似乎有效,而第二次调用无效。

我想弄清楚我面临什么样的情况会导致这样的错误,谢谢。

而且,下面是我如何在 html 文件中包含这些函数:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script></script>
<script src="js/keyword.js"></script>
<script type="text/javascript">
    parseID()
</script>

标签: javascriptjquery

解决方案


真正的原因是我在<body>部分中包含了 jquery 的苗条版本以及问题描述中提到的版本。去掉之后,感觉还不错。


推荐阅读