繁体   English   中英

通过javascript检查表中给定类的输入是否存在

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM