我应该将getElementById与总数一起使用

时间:2019-07-27 23:25:25

标签: javascript-objects

我应该创建一个calcExp函数(计算费用),但是我编写的代码不符合在线案例问题。

创建calcExp()函数。此功能的目的是从travelExp表中计算行和列的总计。将以下命令添加到函数中:

  1. 创建一个expTable变量,引用travelExp表的表主体内的所有表行(tr)元素。
  2. 遍历expTable集合中的行,并使用参数值dateIndex将ID为subtotalIndex的输入元素的值设置为calcClass()函数返回的值。其中,Index是for循环中索​​引计数器的值。使用formatNumber()函数将calcClass()函数返回的值格式化为文本字符串,以2位小数表示。
  3. 在for循环之后,通过使用参数值“ trans”,“ lodge”,“ meal”和“ other”调用calcClass()函数来设置transTotal,lodgeTotal,meatTotal和otherTotal输入元素的值。使用formatNumber()将值格式化为2个小数位。
  4. 使用“ sum”作为参数值,将expTot​​al输入元素的值设置为calcClass()函数返回的值。使用formatUSCurrency()函数设置返回值的格式。

function calcExp() { var expTable = document.querySelectorAll("table#travelExp tr"); for (var i = 0; i < expTable.length; i++) { document.getElementById("subtotal"+i).value = formatNumber(calcClass(date[i]), 2); } document.getElementById("transTotal").value = formatNumber(calcClass("trans"), 2); document.getElementById("lodgeTotal").value = formatNumber(calcClass("lodge"), 2); document.getElementById("mealTotal").value = formatNumber(calcClass("meal"), 2); document.getElementById("otherTotal").value = formatNumber(calcClass("other"), 2); document.getElementById("expTotal").value = formatUSCurrency(calcClass("sum")); }

calcClass为我成功。是:

function calcClass(sumClass) {
  var sumFields = document.querySelectorAll("."+sumClass);
  var sumTotal = 0;
  for (var i = 0; i < sumFields.length; i++) {
    var itemValue = parseFloat(sumFields[i].value);
    if (!isNaN(itemValue)) {sumTotal += itemValue;}
  }
  return sumTotal;
}

如果您想知道,formatNumber和formatUSCurrency是该练习随附的函数。他们是:

function formatNumber(val, decimals) {
   return val.toLocaleString(undefined, {minimumFractionDigits: decimals, maximumFractionDigits: decimals});

function formatUSCurrency(val) {
   return val.toLocaleString('en-US', {style: "currency", currency: "USD"} );

我的错误消息:

calcExp()     1)calcExp()设置正确的小计和总计值     2)calcExp()设置正确的小计和总计值

0通过(228ms)   2次失败

1)calcExp()        calcExp()设置正确的小计和总计值:      ReferenceError:日期未定义       在calcExp(dl_expenses.js:51:74)       在上下文。 (nt-test-7dd2e611.js:26:5)

2)calcExp()        calcExp()设置正确的小计和总计值:      ReferenceError:日期未定义       在calcExp(dl_expenses.js:51:74)       在上下文。 (nt-test-7dd2e611.js:48:5)

0 个答案:

没有答案