我创建了一个 if 条件,但我想检查多个变量。该变量属于不同的 id,如下所示。
是否可以优化代码,因为我不想复制过去并更改变量。
if (T11 > 33){
document.getElementById("T11").innerHTML = '-';
}
else if(T11 > 2){
document.getElementById("T11").innerHTML = T11-30;
document.getElementById("T11").style.textDecoration = 'underline';
}
else {
document.getElementById("T11").innerHTML = T11;
}
if (T12 > 33){
document.getElementById("T12").innerHTML = '-';
}
else if(T12 > 2){
document.getElementById("T12").innerHTML = T12-30;
document.getElementById("T12").style.textDecoration = 'underline';
}
else {
document.getElementById("T12").innerHTML = T12;
}
if (T.. > 33){
document.getElementById("T..").innerHTML = '-';
}
else if(T.. > 2){
document.getElementById("T..").innerHTML = T..-30;
document.getElementById("T..").style.textDecoration = 'underline';
}
else {
document.getElementById("T..").innerHTML = T..;
}
请提出建议。
最佳答案
T1
到 T33
应该是 t
,其中 t
是一个数组 。然后一个循环即可完成此操作。如果 T1
到 T33
不能 成为一个数组(但我无法想象为什么他们不能),你可以创建一个首先是它们的临时数组:
var t = [T1, T2, T3, T4, ... ];
但是,实际上,您根本不应该拥有 T1
到 T33
;只是t
。
一旦你有了t
,你就可以使用forEach
:
t.forEach(function(val, index) {
var element = document.getElementById("T" + (index + 1));
if (val > 33){
element.innerHTML = '-';
}
else if (t[n] > 2){
element.innerHTML = val - 30;
element.style.textDecoration = 'underline';
}
else {
element.innerHTML = val;
}
});
...但是如果你想要一个 for
循环:
for (var n = 0; n < t.length; ++n) {
var val = t[n];
var element = document.getElementById("T" + (n + 1));
if (val > 33){
element.innerHTML = '-';
}
else if (t[n] > 2){
element.innerHTML = val - 30;
element.style.textDecoration = 'underline';
}
else {
element.innerHTML = val;
}
}
关于具有不同变量和关联 ID 的 JavaScript If 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45439760/