Javascript:如果jquery GET失败,请更改CSS元素

Javascript: change CSS element if jquery GET failed

本文关键字:CSS 元素 失败 如果 jquery GET Javascript      更新时间:2023-09-26

我的头中有一个Javascript,它调用外部服务器来检索一些信息,如下所示:

$.getJSON("https://domain.tld/json/", function (something) {
            var results = //stuff that formats the result, not relevant here;
            window.$info = results;
    }).fail(function(){
        // here's where I need the code to make the warning appear 
        });         

然后在正文中,我有一个警告,如果GET请求失败,应该会弹出:

<div id="warning">Warning text</div>

问题:javascript在头中,我无法更改"warning"div,因为它还没有创建。如果我使用document.getElementById("warning").style.display='block';,我会收到一条错误消息,说它为空。

那么,在GET函数失败的情况下,我如何使用jquery GET函数的.fail()部分来显示警告div(稍后创建)呢?或者这是不可能的?我尝试过的一些"解决方案"(不记得具体是什么)甚至延迟了整个页面的加载。我也希望避免这种情况。

谢谢你帮我。

您应该初始隐藏html元素

<div id="warning" style="display:none;">Warning text</div>

当获取请求失败时,您可以调用show()方法来显示隐藏元素

$("#warning").show();

您的javascript正试图在加载DOM之前执行并查找内容。您可以通过确保您的javascript只在DOM就绪时激发来解决这个问题。在jQuery中,你可以这样做:

$(document).ready(function(){
  //your code here
});

它的原生javascript版本要复杂得多,所以我不会在这里发布。然而,在执行如下代码之前,您也可以等待整个页面加载:

window.onload = function(){
  //your code here
}