jquery - 如何计算 div 并将总数附加到相应段落内的文本中?
问题描述
假设我有 5 个 div 类.1995
和 3 个 div 类.1996
和 9 个 div 类.1997
等等......并且假设我还有以下三个段落:
<p>1995</p>
,<p>1996</p>
和<p>1997<p>
.
我想计算 div(例如 1995 级),并将结果(在括号中)附加到段落中的文本后面。到目前为止我只能写很多重复的代码,我相信一定有一个更简单的解决方案!
我设法用类计算了 5 个 div,.1995
并在相应段落中的文本之后显示总数。像这样:
var totalYear1995 = $('.1995').length;
$("div > p:contains('1995')").append( '(' + totalYear1995 + ')');
这导致<p>1995(5)</p>
有 5 个带有 class 的 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})`);
});
如果没有找到年份,则不添加计数器,只需在ingif
之前添加一条语句:.append
const totalYear = $(`.${year}`).length;
if (totalYear > 0) {
$(`div > p:contains('${year}')`).append(`(${totalYear})`);
}
推荐阅读
- sql - 如何在 SQL 查询中使用“as”之后的值?
- jmeter - Jmeter - 如何使用 RegEx 从请求(而非响应)中提取值
- javascript - 删除 webfont.js 作为渲染阻止资源 - 灯塔
- jenkins - 在 Jenkins 管道中使用 Ansible 插件限制库存组
- laravel - 扩展上的 Laravel 规范条件
- python - 通过 API 在 Splunk 中创建搜索查询(python 代码)
- javascript - 联系表格 7 无法提交
- java - 解决 Spring Boot 应用程序中的循环依赖关系
- redux - Redux 与 redux saga/redux thunk。为什么有些人说我现在不应该使用 thunk 因为有一个传奇
- django - AllAuth 允许从 users.email 和 account_emailaddress 表登录