【问题标题】:Check if .getJSON returned any data检查 .getJSON 是否返回任何数据
【发布时间】:2013-04-01 23:33:00
【问题描述】:

我正在尝试使用 KnockOutJS 和 jQuery - 有什么方法可以检查下面的 allData,看看它是否返回了任何东西?

如果没有,我想在屏幕上隐藏一个 div:

$(document).ready(function () {

$("#thankyou").hide(); // hide thank you box

$("#searchBtn").click(function () {

    $.getJSON("/api/searchapi/", function (allData) {
        sampleProductCategories = allData;  // I want to check if this has returned anything?
        if(!allData) { alert("nothing");}
        cart.RoomCategories(sampleProductCategories);
    });
 });
});

Firebug 将空 JSON 显示为:

【问题讨论】:

    标签: jquery ajax jquery-ui knockout.js


    【解决方案1】:

    由于您的 "empty data" 是一个空数组,因此只需测试它的长度即可。

    if (allData.length) {
        // we have data
    }
    else {
        // we don't have data
    }
    

    【讨论】:

    • 谢谢@kevin-b - 我也用过:` if (jQuery.isEmptyObject(allData)){alert("empty");}` 这也有效。非常感谢,马克
    • 不要使用jQuery.isEmptyObject(array)。该函数旨在用于普通对象,而不是数组。它可能有效,但任何阅读您的代码的人都会对您的意图感到困惑。 array.length 是测试空数组的正确方法。
    猜你喜欢
    • 2015-06-09
    • 2021-09-12
    • 2010-09-17
    • 2018-07-26
    • 2021-04-16
    • 2013-06-04
    • 2013-06-21
    • 2011-05-22
    • 2011-03-13
    相关资源
    最近更新 更多