[英]checking the existence of input with a given class in the table by javascript
描述:
我有一张桌子,x:rows,y:colums
大多数行是相同的结构输入(类/类型等),但不是每个人。
我通过 javascipt 按类计算整个表。
在输入带有值的字段时我没有的那些(用户提供的那些)
如果行中没有字段并且该字段是在 javascript 中声明的(按类),[应该在那里输入结果]
经验:
VM36:473 未捕获的类型错误:无法在 HTMLTableElement 的 updateRowX (:473:35) 处设置未定义的属性“值”。 (:491:9)
因为在这一行我没有输入 exp 的类。 “additional_free”(如下例)
function updateRowX(row) {
let inputs = {}
for (let input of row.querySelectorAll("input")) inputs[input.className] = new TimeInput(input);
let { start, end, normative, actual, overtime, additional_work, additional_free, nulladditionalnull_work_null, additional_night } = inputs;
if (!start) return; // Not a data row
let diff = actual - normative;
if (overtime == 0) {
additional_free.value = Math.min(0, 1); <---- here
nulladditionalnull_work_null.value = Math.min(0, 1);
}
if (overtime < eightHours && overtime != 0) {
additional_free.value = Math.max(0, overtime); <---- here
nulladditionalnull_work_null.value = Math.min(0, 1);
}
if (overtime > eightHours) {
additional_free.value = eightHours; <---- here
nulladditionalnull_work_null.value = Math.max(0, overtime - eightHours);
}
}
我的问题:
如果此变量存在,程序是否可以检查这些地方?
我是否很好地描述了问题?
1.如果没有带班级overtime
输入, overtime
overtime
不等于0
,而是undefined
2.在你的代码中,如果有多个相同类的输入,最后一个将覆盖前一个
3.在定义overtime
的情况下,它将是TimeInput
类型。 不是一个数字。 那么你如何将它作为一个数字进行比较?
无论如何,如果您想设置additional_free
值仅当它不是undefined
,您可以这样做:
additional_free && (additional_free.value = Math.min(0, 1));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.