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