2017-08-01 66 views
1

我創建了一個if條件,但我想檢查多個變量。變量屬於不同的ID,如下所示。Javascript如果條件與不同的變量和相關的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..; 
     } 

請建議。

+0

'if'不會創建一個循環......還要注意,連字符('-')不在JS標識的有效字符。 – Teemu

+0

** if-loop ** ...什麼? – Weedoze

+2

'if'不是一個循環。但它聽起來像你想要*是一個循環。循環是編程中的一個非常常見的控制結構,你應該看一看並用JavaScript教程練習一些。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Loops_and_iteration – David

回答

0

T1陣列內部的數據應該是t,其中t陣列。然後一個循環就完成了。如果T1通過T33不能進行數組(但我無法想象,爲什麼他們不能),你可以先創建它們的臨時數組:

var t = [T1, T2, T3, T4, ... ]; 

但同樣,真的,你根本不應該有T1T33;只是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; 
    } 
} 
0

Store中通過T33對象

const data = [{ 
    variable: T11, 
    name: "T11" 
},{ 
    variable: T12, 
    name: "T12" 
}]; 

data.forEach(d => { 
    let element = document.getElementById(d.name); 
    if(d.variable > 33){ 
     element.innerHTML = '-'; 
    }else if(d.variable > 2){ 
     element.innerHTML = d.variable - 30; 
     element.style.textDecoration = 'underline'; 
    }else{ 
     element.innerHTML = d.variable 
    } 
}); 
0

使它成爲一個功能

codeReduce(13,TD1) //call like this 

function codeReduce(id,name){ 
    if(id > 33){ 
     document.getElementById(name).innerHTML = '-'; 
    } 
    else if(id > 2){ 
     document.getElementById(name).innerHTML = id-30; 
     document.getElementById(name).style.textDecoration = 'underline'; 
    } 
    else{ 
     document.getElementById(name).innerHTML = id; 
    } 
} 
0

你可以使用一個對象,你有一個字符串作爲鍵和一個值,如

values = { 
    T11: 20, 
    T22: 10 
} 

然後使用Object.keys和循環

Object.keys(values).forEach(function (k) { 
    var element = document.getElementById(k); 
    if (values[k] > 33) { 
     element.innerHTML = '-'; 
     return; 
    } 
    element.innerHTML = values[k]; 
    if (values[k] > 2) { 
     element.innerHTML -= 30; 
     element.style.textDecoration = 'underline'; 
    } 
}); 
相關問題