jquery - 如何计算 div 数并将总计附加到相应段落内的文本中?

标签 jquery

假设我有 5 个 div 类 .1995和 3 个 div 类 .1996和 9 个 div 类 .1997等等...假设我还有以下三段:

<p>1995</p> , <p>1996</p><p>1997<p> .

我想计算 div 的数量(例如 1995 类),并将结果(在括号之间)附加在段落中的文本后面。到目前为止,我只能编写大量重复的代码,我相信一定有更简单的解决方案!

我已经成功地计算了类 .1995 的 5 个 div。并在相应段落的文本后显示总计。就像这样:

var totalYear1995 = $('.1995').length;
  $("div > p:contains('1995')").append( '(' + totalYear1995 + ')');

这会导致 <p>1995(5)</p>因为有 5 个 div 类为 .1995 .

由于我已经工作了 500 多年,我希望避免出现 500 个变量,例如

var totalYear1995 = $('.1995').length;

var totalYear1996 = $('.1996').length;

var totalYear1997 = $('.1997').length;

...乘以 500。哎呀!

有没有更短的方法来做到这一点?我希望得到一些类似的东西,甚至更短的东西:

$("div > p:contains('1995')").append( '(' + ($('.1995').length;) + ')');

我不知道如何解决这个问题。如何实现这一目标?

最佳答案

首先创建一个包含您要检查其类别的年份的数组,然后对其进行迭代:

const yearsFrom1500To1999 = Array.from(
  { length: 500 },
  (_, i) => 1500 + i
);
yearsFrom1500To1999.forEach((year) => {
  const totalYear = $(`.${year}`).length;
  $(`div > p:contains('${year}')`).append(`(${totalYear})`);
});

要在未找到年份的情况下不添加计数器,只需在 .append 之前添加一个 if 语句即可:

const totalYear = $(`.${year}`).length;
if (totalYear > 0) {
  $(`div > p:contains('${year}')`).append(`(${totalYear})`);
}

关于jquery - 如何计算 div 数并将总计附加到相应段落内的文本中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55387549/

相关文章:

javascript - 将事件类添加到导航链接,但某些 li 除外

javascript - 如何在按键时获取 html 表集中的行特定列数据

javascript - js根据相等列的id按不同列进行二次排序

php发送邮件并在同一页面显示成功信息

javascript - 在更改上一个选择框中的相同项目时禁用项目

javascript - focus() 在 colorbox 弹出窗口中不起作用

javascript - 如果我不使用 Ajax 选择任何内容,如何避免下拉列表不修改数据 - MVC

javascript - 动态添加和删除 HTML 表格中的行

javascript - 使用 tween() 根据内容对 div 的高度进行动画处理

javascript - 如何修复覆盖网站标题的灯箱画廊?