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

如何使用JavaScript统计表格中已生成的结果数量?

如何统计表格中已生成的结果数量?

我完全懂你的需求——就是要数一下表格里已经算出结果的行数,只统计数量,不用管结果的具体数值对吧?看你的表格结构,结果都存在那些带disabled属性、name为ResultadoUni的输入框里,那我们可以用这几种简单的JavaScript方法实现:

方法一:通过选择器批量筛选(推荐,支持动态添加行)

这个方法会自动找到所有符合条件的结果输入框,就算后续动态添加表格行也不用改代码,非常灵活:

// 定义统计函数
function contarResultados() {
  // 选中表格里所有name为ResultadoUni的禁用输入框
  const todosResultados = document.querySelectorAll('#example input[name="ResultadoUni"][disabled]');
  
  // 把NodeList转成数组,过滤出有非空值的输入框
  const resultadosPreenchidos = Array.from(todosResultados).filter(input => {
    return input.value.trim() !== ''; // 用trim()排除只有空格的情况
  });
  
  // 返回已生成结果的数量
  return resultadosPreenchidos.length;
}

怎么用?

你可以在计算结果之后调用这个函数,比如在你的calculaResultado函数末尾加上统计逻辑,还可以把结果显示在页面上:

  1. 先在页面加个显示计数的元素:
<div>已完成结果数量:<span id="contador">0</span></div>
  1. 写个更新计数的函数,然后在计算结果时调用:
function atualizarContador() {
  const quantidade = contarResultados();
  document.getElementById('contador').textContent = quantidade;
}

// 修改你的calculaResultado函数,计算完结果后更新计数
function calculaResultado(id) {
  // 你原来的计算逻辑...
  // 比如计算完给resultado${id}赋值后:
  
  atualizarContador(); // 调用更新计数
}

方法二:按序号循环检查(适合固定序号的输入框)

如果你的结果输入框id都是resultado1、resultado2这种有规律的序号,也可以用循环逐个检查:

function contarResultados() {
  let contador = 0;
  let indice = 1;
  
  // 循环查找直到找不到对应的输入框
  while (true) {
    const input = document.getElementById(`resultado${indice}`);
    if (!input) break; // 找不到就退出循环
    
    // 如果输入框有非空值,计数+1
    if (input.value.trim() !== '') {
      contador++;
    }
    indice++;
  }
  
  return contador;
}

这个方法的好处是逻辑直观,但如果后续动态添加行,需要保证id的序号是连续的,不然会漏统计。

小提示

  • 一定要用trim()过滤掉空格,避免用户不小心输入空格被误统计成有效结果
  • 如果你的表格会动态添加行,优先用方法一,querySelectorAll会自动捕获所有新增的符合条件的输入框

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:13:28