Javascript Fetch API 未在多张卡上显示结果

标签 javascript html css bootstrap-4

我有一个脚本,可以从链接获取数据,然后将其插入表中并向用户显示。脚本运行良好。但后来我决定让函数更加动态,所以我添加了 2 个参数 name 和 Html div 名称,数据将在其中显示。当我第一次调用该函数时它工作正常,但第二次调用时它没有显示任何数据。我在我的元素中使用 PHP,并且对 javascript 很陌生。但我在 PHP 中做了一个类似的函数,但它有效。有什么建议吗?

function getInfoByCountry(name, displayName) {
  fetch("https://something.com/countries/" + name)
    .then(res => res.json())
    .then(data => {
      output = `
      <tr>
        <td>Total Cases</td>
        <td>${data.cases}</td>
      </tr>
      <tr>
        <td>Today Cases</td>
        <td>${data.todayCases}</td>
      </tr>
      <tr>
        <td>Deaths</td>
        <td>${data.deaths}</td>
      </tr>
      <tr>
        <td>Recovered</td>
        <td>${data.recovered}</td>
      </tr>        
      <tr>
        <td>Critical</td>
        <td>${data.critical}</td>
      </tr>
      <tr>
        <td>Active Cases</td>
        <td>${data.active}</td>
      </tr>                        
    `;
      document.getElementById(displayName).innerHTML = output;
    });
}

getInfoByCountry("USA", "USAInfo");

getInfoByCountry("China", "ChinaInfo");
<div class="table-responsive">
  <table class="table table-striped mb-0">
    <tbody id="ChinaInfo">

    </tbody>
  </table>
</div>

最佳答案

像这样添加返回

 function getInfoByCountry(name, displayName) {
  var display = document.getElementById(displayName);
  return fetch("https://smthing.com/countries/"+name)
    .then(res => res.json())
    .then(data => {

      output = `
  <tr>
    <td>Total Cases</td>
    <td>${data.cases}</td>
  </tr>
  <tr>
    <td>Today Cases</td>
    <td>${data.todayCases}</td>
  </tr>
  <tr>
    <td>Deaths</td>
    <td>${data.deaths}</td>
  </tr>
  <tr>
    <td>Recovered</td>
    <td>${data.recovered}</td>
  </tr>        
  <tr>
    <td>Critical</td>
    <td>${data.critical}</td>
  </tr>
  <tr>
    <td>Active Cases</td>
    <td>${data.active}</td>
  </tr>                        
`;

  document.getElementById(displayName).innerHTML += output;

    }

    );
}


  getInfoByCountry("USA", "display");

  getInfoByCountry("China", "display");

关于Javascript Fetch API 未在多张卡上显示结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60769213/

相关文章:

javascript - SVG 元素的 Bootstrap 弹出窗口不适用于 jQuery 3.0.0

javascript - Jquery .animate() 方法似乎不适用于 css top 属性

javascript - 使用 ExtractTextPlugin 将 SASS 转换为 CSS

html - 使用 Css 而不是对齐 <P> 标记内的两个文本

CSS - 背景图像

javascript - 在监听器函数内调用方法时出现引用错误 (Javascript)

javascript - 基于字符出现的 CSS 选择器?

javascript - 为什么只显示 arr[0]

html - 无法在 Firefox 中播放任何类型的视频

javascript - facebook 如何在密码更改时执行 onkeyup 和 onchange ?