Javascript 如何从动态HTML表中获取特定的用户输入数据(Onchange函数,数值)

Javascript 如何从动态HTML表中获取特定的用户输入数据(Onchange函数,数值),javascript,object,dynamic,html-table,data-retrieval,Javascript,Object,Dynamic,Html Table,Data Retrieval,我试图从动态表的输入字段中获取值。这样,当用户更改数字输入字段中的值时,它会正确计算每行的总数 到目前为止,我得到了数据,但从所有的输入字段。我只需要桌上的那些 我尝试了一些条件语句,因为我只需要产品对象数组中具有可编辑选项的输入字段。(可编辑是一个值,用于生成输入字段) 如何正确获取这些数据,以便将其与价格相乘(我的荷兰语PRIJS专栏) 我认为这将是简单的,因为我几乎完成了这个项目。但是我被卡住了:s 我在这里证明了一支密码笔: 该阵列是由多个产品组成的 我正在处理的number oncha

我试图从动态表的输入字段中获取值。这样,当用户更改数字输入字段中的值时,它会正确计算每行的总数

到目前为止,我得到了数据,但从所有的输入字段。我只需要桌上的那些

我尝试了一些条件语句,因为我只需要产品对象数组中具有可编辑选项的输入字段。(可编辑是一个值,用于生成输入字段)

如何正确获取这些数据,以便将其与价格相乘(我的荷兰语PRIJS专栏)

我认为这将是简单的,因为我几乎完成了这个项目。但是我被卡住了:s

我在这里证明了一支密码笔:

该阵列是由多个产品组成的

我正在处理的number onchange函数是JS文件下面的函数EentjeMeer()。 当然,要查看控制台日志,请首先单击一个数字:)现在,当我单击第一个时,输出为:

[“4”、“2”、“4”、“2”、“0”、“0”、“0”、“添加产品”]

我只需要前4个,其余的不是表,而是用户输入字段(然后我希望可以轻松地用这些值更新products数组)

let myTable=document.querySelector(“#table”);
设rowID=0;
设inputID=0;
//数组met objecten erin{}staat voor een object
让产品=[
{omschrijving:{value:“found”},waarde:{value:1},aantal:{value:3,editable:true},total:{value:0},
{omschrijving:{value:“Brocolli”},waarde:{value:0.99},aantal:{value:2,可编辑:true},总计:{value:0},
{omschrijving:{value:krentebollen},waarde:{value:1.20},aantal:{value:4,可编辑:true},总计:{value:0},
{omschrijving:{value:“Noten”},waarde:{value:2.99},aantal:{value:2,可编辑:true},总计:{value:0}
]
///在选项卡中更新总计
for(设i=0;i{
返回productCal.total.value+currentTotal
}, 0)
const-uitlaw=固定的总数(2);
document.getElementById('totaal').innerHTML=“totaal bedrag”+uitlaw;
////表[td]为第列
//表格标题
让headerTexts=['Name'、'Prijs'、'Aantal'、'Totaal'];
让table=document.createElement('table');
让headerRow=document.createElement('tr');
headerText.forEach(headerText=>{
让header=document.createElement('th');
设textNode=document.createTextNode(headerText);
header.appendChild(textNode);
headerRow.appendChild(表头);
});
表1.追加子项(headerRow);
products.forEach(产品=>{
让row=document.createElement('tr');
row.className=product.omschrijving.value;
Object.values(product.forEach)(条目=>{
//console.log(“行”+rowID);
让cell=document.createElement('td');
让cellInput=document.createElement(“输入”);
cellInput.type=“编号”
cellInput.defaultValue=entry.value;//Hier haalt hij de values**************
addEventListener(“更改”,函数(ev){//ik snap de(ev)niet die ev kan ik ook weghalen。
日志(“点击输入”)
eentjeMeer();
});
设textNode=document.createTextNode(entry.value);
cell.appendChild(entry.editable?cellInput:textNode);//variablename=(条件)?value1:value2
//如果条目可编辑,则追加子单元格输入编号
cell.className=entry.editable?“editable”:;
子行(单元格);
})
表2.追加子项(行);
});
console.log(“条目”+Object.entries(产品));
myTable.appendChild(table);
对于(设j=0;j{
让row=document.createElement('tr');
Object.values(emp.forEach)(empValue=>{
让cell=document.createElement('td');
让cellInput=document.createElement(“输入”);
cellInput.type=“编号”
cellInput.defaultValue=empValue.value;
cellInput.addEventListener(“更改”,函数(ev){
日志(“点击输入”)
eentjeMeer();//回调
});
设textNode=document.createTextNode(empValue.value);
cell.appendChild(empValue.editable?cellInput:textNode);//如果语句kunnen dus ook zo hier voor appenden
cell.className=empValue.editable?“可编辑”:“;
子行(单元格);
})
表2.追加子项(行);
});
myTable.appendChild(table);
//更新totaal床单
const total0=测试减少((currentTotal,productCal)=>{
返回productCal.total.value+currentTotal
}, 0)
常数yo=0.toFixed(2);
const TotalTable=Number.parseInt(yo)+Number.parseInt(uit);
document.getElementById('totaal').innerHTML=“totaal bedrag”+TotalTable;
}
函数eentjeMeer(){
Object.values(products.forEach(条目=>{
如果(entry.editable=true)
//console.log(条目
    Object.values(products).forEach(entry => {
var inputs = myTable.getElementsByTagName("input");
var result = new Array(inputs.length);
for (var i=0; i<inputs.length; i++)
    //products[i].total.value = products[i].waarde.value * products[i].aantal.value; 
    result[i] = inputs[i].value;    
    console.log(result);  
    });