我按班级计算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) {
只需检查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);
添加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);
});
});