You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用jQuery统计各Div内Li数量并分别输出对应结果?

嘿,我来帮你搞定这两个jQuery问题,咱们一个一个来~

问题1:如何让jQuery显示每个li的序号并输出数字?

你可以用jQuery的$.each()方法来遍历所有<li>元素,这个方法会提供遍历的索引值(注意索引从0开始,所以要加1才是实际序号)。这里分两种常见场景:

  • 场景1:在每个li内部显示序号
    直接遍历li,把序号插入到元素内容里:

    $("li").each(function(index) {
      // index是当前元素的索引(从0开始),加1得到序号
      const serialNumber = index + 1;
      // 给li添加序号,比如前置到内容前
      $(this).prepend(`${serialNumber}. `);
      // 同时也可以在控制台输出序号
      console.log(`第${serialNumber}个li`);
    });
    
  • 场景2:仅在控制台输出所有li的序号
    如果不需要修改页面元素,只是输出数字:

    $("li").each(function(index) {
      console.log(index + 1);
    });
    
问题2:遍历每个div,分别统计内部li数量并对应输出

你提到之前的代码会把所有统计结果汇总到一个p标签里,这大概率是因为你没有针对每个div单独处理统计结果的输出位置。咱们需要遍历每个div时,为当前div生成对应的统计内容,而不是把所有结果都塞到同一个p里。

假设你的HTML结构类似这样:

<div class="container">
  <li>item1</li>
  <li>item2</li>
</div>
<div class="container">
  <li>item3</li>
</div>

修正后的jQuery代码如下:

// 遍历每个div
$("div").each(function() {
  // 获取当前div内部的li数量
  const liCount = $(this).find("li").length;
  // 在当前div的末尾添加一个p标签,显示统计结果
  $(this).append(`<p>当前div内的li数量:${liCount}</p>`);
  
  // 如果你页面上已经有对应每个div的p标签(比如带相同索引的统计容器),可以这样写:
  // const divIndex = $(this).index();
  // $(`p.statistic:eq(${divIndex})`).text(`当前div内的li数量:${liCount}`);
});

为什么原来的代码会汇总?

原来的写法可能是先定义变量累加结果,或者直接把所有内容追加到同一个p标签里,比如:

// 错误示例:汇总所有结果到同一个p
let totalText = "";
$("div").each(function() {
  const count = $(this).find("li").length;
  totalText += `div的li数量:${count} `;
});
$("p").text(totalText);

这种写法就会把所有div的统计结果都放到同一个p里,而我们需要的是每个div对应自己的统计输出,所以要在遍历每个div的过程中,直接把结果输出到当前div对应的位置。


内容的提问来源于stack exchange,提问作者Tobias Heide

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:25:06