javascript - innerhtml 中的 if 条件

标签 javascript if-statement conditional-statements

我有以下代码

     function showDetails(confirmed, recovered, deaths) {
  if (recovered == undefined && deaths == undefined) {
    output.innerHTML = `
    <div  class="confirmed">
     <i class="fas fa-head-side-mask"></i> 
  <p> ${confirmed}</p>
    </div>`;
  } else if (recovered == undefined) {
    output.innerHTML = `<div class="confirmed">
     <i class="fas fa-head-side-mask"></i> 
     <p>casi confermati</p>
     <p>${confirmed}</p>
    </div>
    <div  class="deaths">
  <i class="fas fa-cross"></i>
   <p>Deceduti</p>
  <p>${deaths}</p>
    </div>`;
  } else if (deaths == undefined) {
    output.innerHTML = `<div  class="confirmed">
     <i class="fas fa-head-side-mask"></i> 
     <p>casi confermati</p>
     <p>${confirmed}</p>
    </div>
    <div  class="recovered">
  <i class="fas fa-heartbeat"></i>
  <p>Ricoverati</p>
  <p>${recovered}</p>
    </div>`;
  } else {
    output.innerHTML = `
    <div  class="confirmed">
     <i class="fas fa-head-side-mask"></i> 
     <p>Casi confermati</p>
<p>${confirmed}</p>
    </div >
    <div class="recovered">
  <i class="fas fa-heartbeat"></i>
  <p>Ricoverati</p>
<p>${recovered}</p>
    </div>
    <div  class="deaths">
  <i class="fas fa-cross"></i>
  <p>Deceduti</p>
  <p>${deaths}</p>
    </div>`;
  }
}

我想尝试通过在innerHTML本身中插入条件来清理这段代码,但我不明白如何做到这一点,最重要的是是否可以做这样的事情或者可能有更好的方法来做它。我想做的例如是这样的:

        output.innerHTML = `
            <div  class="confirmed">
             <i class="fas fa-head-side-mask"></i> 
             <p>Casi confermati</p>
        <p>${confirmed}</p>
            </div >
//CONDITION
    if (${recovered} =!undefined ) {
            <div class="recovered">
          <i class="fas fa-heartbeat"></i>
          <p>Ricoverati</p>
        <p>${recovered}</p>
            </div>
    }
//CONDITION
if (${deaths} =!undefined ) {
            <div  class="deaths">
          <i class="fas fa-cross"></i>
          <p>Deceduti</p>
          <p>${deaths}</p>
            </div>`;
          }
}

这样的事情可以做吗?抱歉,如果这是一个微不足道的问题,但我正在努力学习

最佳答案

我会这样做:

var textToOutput = `
  <div  class="confirmed">
    <i class="fas fa-head-side-mask"></i> 
    <p>Casi confermati</p>
    <p>${confirmed}</p>
  </div >
`;

if (${recovered} =!undefined ) {
  textToOutput += `
    <div class="recovered">
      <i class="fas fa-heartbeat"></i>
      <p>Ricoverati</p>
      <p>${recovered}</p>
    </div>
  `;
}

if (${deaths} =!undefined ) {
  textToOutput += `
    <div  class="deaths">
      <i class="fas fa-cross"></i>
      <p>Deceduti</p>
      <p>${deaths}</p>
    </div>
  `;
}

output.innerHTML = textToOutput;

关于javascript - innerhtml 中的 if 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61208313/

相关文章:

javascript - primeNg Schedule(日历)加载 Angular 日历时出现问题

java - 如何检查 Dropbox 用户 session 是否有效?

python - Selenium (Python) 模式匹配

bash - 损坏 : Elif in For loop with increment counter

java - 两个小型结构的性能差异

javascript - 如何从 inputTextarea 读取文本作为 javascript 对象

javascript - 为什么 Chrome 在使用 Typed.js 时难以呈现表情符号?

javascript - 通过映射到子 html 元素呈现响应数据...使用 React 和更新状态

excel - VBA - 减少 if 内的 for 循环

java - 重构详细的 switch case 语句