如何防止html附加到跨度;当一个计数(div)的总数为零时?

问题描述 投票:0回答:2

我按班级计算div。总量将添加到跨度并显示在括号之间。

例如当有5个等级为'1995'的div时,总量将显示为

<span>1995(5)</span>

我使用以下代码来实现此目的:

const years = Array.from(
  { length: 500 },
  (_, i) => 1500 + i
);
years.forEach((year) => {
  const totalYear = $(`.${year}`).length;
  years.forEach((year) => {
        const totalYear = $(`.${year}`).length;
        $(`#index_year > p:contains('${year}')`).html( year + "<span class='counter'> (" + totalYear + ")</span>");
    });
});

当计数总数为零时,我试图隐藏金额,因为我希望看到<span>1995</span>而不是<span>1995(0)</span>。因此隐藏(0)。

防止显示(0)的一种方法是在将HTML添加到跨度之前检查totalYear !== 0

但是,我无法弄清楚如何正确地将此解决方案添加到我正在使用的代码中...请帮助。

编辑

感谢answer by Jamie,我通过添加以下内容设法隐藏金额为零的金额:

  if (totalYear > 0) {
jquery
2个回答
0
投票

只需检查totalYear是否有值,然后根据响应添加span。

const totalYear = $(`.${year}`).length;
var totalVal = '';


if (totalYear > 0) {
    totalVal = '<span class="counter">(' + totalYear + ')</span>';
}

$("#index_year > p:contains('${year}')").html(year + totalVal);


0
投票

添加IF块以添加或不添加总数:

years.forEach((year) => {
  const totalYear = $(`.${year}`).length;
  years.forEach((year) => {
        const totalYear = $(`.${year}`).length;
        let total = (totalYear > 0)?  "<span class='counter'> (" + totalYear + ")</span>" : "";
        $(`#index_year > p:contains('${year}')`).html( year + total);
    });
});
© www.soinside.com 2019 - 2024. All rights reserved.