AJAX的奇怪行为返回JSON对象

时间:2017-02-26 19:55:44

标签: jquery json ajax

所以我请求并从服务器获取对象,如下所示:

$(document).ready(function () {
        var req= $.getJSON("api/Appointments");
        req.done(function (data) {
            $.each(data, function (key, value) {
                $("#ul1").append("<li>" + value.Time + value.Company + "</li>");
            });
        });
        zahtev.fail(function (error) {
            alert(error.statusText);
        })
});

它有效,它显示<ul>中的1个项目!
但是,当我尝试这样做时:

 $(document).ready(function () {
        var req = $.getJSON("api/Appointments");
        req.done(function (data) {
            if ((data.Time == "9:00") && (data.Company == "Laakkonen")) {
                document.getElementById("A9").style.background = "red";
            } else {
                alert("error1");
            }

        });
        req.fail(function (error) {
            alert(error.statusText);
        })
     });

它给了我else语句的错误1!如果检索到的JSON对象DID确实没有9:00,那应该没问题,但是我在前面提到的表中有1个项目,其中包含"9:00""Laakkonen" ...所以它应该将元素着色为红色。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

如果您将数据组合作为回复: -

$(document).ready(function () {
    var req = $.getJSON("api/Appointments");
    req.done(function (data) {
        var result = false;
        $.each(data, function (key, value) {
            if ((value.Time == "9:00") && (value.Company == "Laakkonen")) { 
                result = true;
                return result; 
            }
        });
        if (result == true) {
            document.getElementById("A9").style.background = "red";
        } else {
            alert("error1");
        }
    });
    req.fail(function (error) {
        alert(error.statusText);
    });
});

如果您有单个数据作为回复: -

if ((data[0].Time == "9:00") && (data[0].Company == "Laakkonen")) { 
    document.getElementById("A9").style.background = "red"; 
} else { 
    alert("error1"); 
}