Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在表中的文本框中获取一行数字并计算其总数_Javascript_Html - Fatal编程技术网

Javascript 在表中的文本框中获取一行数字并计算其总数

Javascript 在表中的文本框中获取一行数字并计算其总数,javascript,html,Javascript,Html,我有这个表,在最后一列中,文本框中有一行数字。我试图循环遍历这些行,并在文本框中获取每个数字。一旦收集了所有的数字,所有的数字都将被添加。我希望在单击“计算”按钮后添加它 我尝试获取单元格vie tableName.rows[n].cells[n].innerHTML的内容,但这不起作用,因为文本仍在文本框中。我甚至不确定这是否就是在表格单元格中获取文本的方式/ 让mealObj={ 菜单1:{ 美努米:“牛排”, ingr1:{ 名称:“黄油”, ingrType:“其他”, 金额:“2”,

我有这个表,在最后一列中,文本框中有一行数字。我试图循环遍历这些行,并在文本框中获取每个数字。一旦收集了所有的数字,所有的数字都将被添加。我希望在单击“计算”按钮后添加它

我尝试获取单元格vie tableName.rows[n].cells[n].innerHTML的内容,但这不起作用,因为文本仍在文本框中。我甚至不确定这是否就是在表格单元格中获取文本的方式/

让mealObj={
菜单1:{
美努米:“牛排”,
ingr1:{
名称:“黄油”,
ingrType:“其他”,
金额:“2”,
金额类型:“tbsp”,
卡尔:“10”,
},
ingr2:{
名称:“欧芹”,
ingrType:“蔬菜”,
金额:“1”,
金额类型:“tsp”,
卡尔:“1”,
},
ingr3:{
名称:“大蒜”,
ingrType:“蔬菜”,
金额:“1/2”,
金额类型:“tsp”,
卡尔:“20”,
},
ingr4:{
名称:“酱油”,
ingrType:“其他”,
金额:“1/4”,
金额类型:“tsp”,
卡尔:“20”,
},
ingr5:{
名称:“牛肉”,
ingrType:“肉”,
金额:“3/4”,
数量类型:“磅”,
卡尔:“200”,
},
ingr6:{
名称:“盐”,
ingrType:“其他”,
金额:“1/8”,
金额类型:“tsp”,
cal:“0”,
},
ingr7:{
名称:“胡椒”,
ingrType:“其他”,
金额:“1/8”,
金额类型:“tsp”,
卡尔:“2”,
},
},
}
让IngerTable=document.getElementById(“ingr表”);
对象(mealObj);
函数对象(ingrList){
让totalRowLength=IngerTable.rows.length;
为了(让我进入英格利斯特){
for(让k进入ingrList[i]){
if(ingrList[i][k].name!==未定义){
让tableAmount=document.createElement(“输入”);
tableAmount.setAttribute(“类型”、“编号”);
tableAmount.id=“表金额”;
让tableCalNum=document.createElement(“输入”);
tableCalNum.setAttribute(“类型”、“编号”);
tableCalNum.id=“table cal”;
让行=IngerTable.insertRow(总行长);
var cell1=行插入单元格(0);
var cell2=行插入单元格(1);
var cell3=行插入单元格(2);
var cell4=行插入单元格(3);
var cell5=行插入单元格(4);
cell1.innerHTML=ingrList[i][k]。名称;
单元格2.追加子项(表金额);
tableAmount.value=eval(ingrList[i][k].金额);
cell3.innerHTML=ingrList[i][k].amountType;
单元格4.追加子项(tableCalNum);
tableCalNum.value=ingrList[i][k].cal;
}
}
}
}
let button=document.getElementById(“按钮”);
让calculateBtn=document.createElement(“按钮”);
calculateBtn.innerHTML=“计算”;
按钮。追加子项(calculateBtn);
calculateBtn.addEventListener(“单击”,函数(){
for(设i=0;i

成分
数量
卡路里
这应该可以做到:

让mealObj={
菜单1:{
美努米:“牛排”,
ingr1:{名称:“黄油”,ingrType:“其他”,金额:“2”,金额类型:“tbsp”,cal:“10”,},
ingr2:{名称:“欧芹”,INGR类型:“蔬菜”,数量:“1”,数量类型:“tsp”,cal:“1”,},
ingr3:{名称:“大蒜”,INGR类型:“蔬菜”,数量:“1/2”,数量类型:“tsp”,cal:“20”,},
ingr4:{名称:“酱油”,ingrType:“其他”,数量:“1/4”,数量类型:“茶匙”,cal:“20”,},
ingr5:{名称:“牛肉”,ingrType:“肉”,数量:“3/4”,数量类型:“磅”,cal:“200”,},
ingr6:{名称:“盐”,ingrType:“其他”,金额:“1/8”,金额类型:“tsp”,cal:“0”,},
ingr7:{名称:“胡椒”,ingrType:“其他”,金额:“1/8”,金额类型:“tsp”,cal:“2”,},
},
};
const mknum=(str)=>函数(''use strict';return('+str.trim().replace(+/,“+”)+))();
const tbl=document.querySelector(“#ingr table tbody”);
tbl.innerHTML=Object.values(mealObj.menu1).slice(1).map(r=>
`${r.name}
${r.amountType}`)。加入(“\n”)
+"总和";;
常量amnts=[…tbl.queryselectoral(“td:n子(2)输入”)],asum=document.getElementById(“asum”),
cals=[…tbl.queryselectoral(“td:n子(4)输入”)],csum=document.getElementById(“csum”),
求和=()=>{asum.textContent=amnts.reduce((a,c)=>{try{return a+=mknum(c.value)}catch{return a},0);
csum.textContent=cals.reduce((a,c)=>a+=+c.value,0);};
tbl.addEventListener(“输入”,ev=>ev.target.tagName==“输入”&&summation())
求和()

成分
数量
卡路里