我有以下功能,我想用for循环简化,但不知道该怎么做。任何帮助都感激不尽。基本上,如果字段值为0或null,那么我的总值(字段)应为0,否则如果字段值从1到1000则总值变为5000.对于每1000(即1001到2000)我的总值应该增加50即5050.这应该持续到字段值达到200000并且总数为50000。
function calc56() {
var56 = parseFloat(document.getElementById('units56').value - 0);
if (var56 == '' || var56 == 0) {
document.getElementById('amount56').value = 0;
}
else if (var56 < 1000) {
document.getElementById('amount56').value = 5000;
}
else if ((var56 > 1000) && (var56 <= 2000)) {
document.getElementById('amount56').value = 5050;
}
else if ((var56 > 2000) && (var56 <= 3000)) {
document.getElementById('amount56').value = 5100;
}
}
提前致谢。
答案 0 :(得分:1)
function calc56() {
var el = document.getElementById('units56'); //reference the dom element
var val = +el.value; //convert to float
if (!val) { //if no value, leave untouched
} else if (val < 0) { //if value is less than 0, make it 0.
el.value = 0;
} else { //otherwise, calculate new value
var mod = Math.floor(val / 1000); //calc how many 1000s fit in the value
el.value = mod * 50 + 5000; //use at least 5000, and add 50 for every 1000
}
}
我建议您也更改该功能的名称,因为它不是很有用。但是,这里的代码应该是最有效的,同时仍然保持可读性。
如果您需要更多说明,请随时在评论中提问!