2017-05-31 94 views
-1

值「-50.9」和「10.87」已被分配給下面的html代碼作爲變量(value1 = -50.9; value2 = 10.87)。JavaScript:無法動態更改HTML單元格顏色

我的範圍:(無限 - 值至-35),(-34至-25),(-24至更大數目)

我假定如果 '如果條件' 爲真,則細胞的背景顏色應該改變?

<html> 
<head> 
<!--<script type="text/javascript">--> 
<script language="JavaScript"> 
    function try() {                                               
    if (-50.9 <= -25|| 10.87 <= -25) {                                             
     document.getElementById("texas").style.backgroundColor='white';                                  
    } else if (-50.9 <= -35 || 10.87 <= -35) {                                           
     document.getElementById("texas").style.backgroundColor='blue';                                  
    } else {                                               
     document.getElementById("texas").style.backgroundColor='pink';                                  
    }                                                 
};                                                                                                                                                                                                             
</script>  
</head> 
<body> 
<div id = "div1"> 
    <table> 
    <tr> 
     <td id = "texas"><a href="">A = 10.87<br>B = -50.9</a></td> 
    </tr> 
    </table> 
</div> 
</body> 
</html> 

這能行嗎?或者值應該是一個變量?

編輯
我用一個perl腳本通過打印內容來生成這個html。
並且在腳本的開頭聲明瞭value1和value2。
所以當腳本打印html表時,它會將變量轉換爲值。
另外,爲什麼它在JavaScript中是-50.9和10.87。

我在想,只要if-else條件爲真,就可以改變單元格的顏色。
比方說,在這種情況下,表格單元格顏色應該是藍色的?
因爲現在,表格單元格顏色保持不變,沒有任何變化。

+1

真正的問題是什麼?你在期待什麼,發生了什麼? – Utkanos

+1

作爲@ D.Peter說 - 你實際上沒有調用函數 - 你只是聲明它 – ThisGuyHasTwoThumbs

+3

此外,嘗試在JavaScript中的關鍵字,改變你的名字功能 –

回答

0

1.更改你的HTML tr標籤和分配不同的ID號爲值1和值2

<tr> 
    <td id = "texas"><a href=""> 
    A = <p id = "value1">10.87</p> 
    <br> 
    B = <p id = "value2">-50.9</p> 
    </a> 
    </td> 

2.然後自定義你的JavaScript來實現你的結果

function test() { 

var value1 = document.getElementById("value1").innerText; 

var value2 = document.getElementById("value2").innerText; 

value1 = Number(value1); 
value2 = Number(value2); 

if (value1 <= -25 || value2 <= -25) { 
    document.getElementById("texas").style.backgroundColor = 'red'; 
} else if (value1 <= -35 || value2 <= -35) { 
    document.getElementById("texas").style.backgroundColor = 'yellow'; 
} else { 
    document.getElementById("texas").style.backgroundColor = 'green'; 
} 
}; 

3 。不要忘記調用函數

test(); 
+0

我建議你編輯你的答案並解釋原代碼中的錯誤以及你爲解決它而做出的改變。 –

+0

嗨,Subi,謝謝你的回答,但是,我仍然無法得到我想要的。道歉不清楚我的問題。我剛剛編輯過。請看一看。 – Santa

+0

@Santa sry,我現在有一些工作,但我會在4小時內更新我的答案,相信我,去喝一杯咖啡,放鬆並享受...... 4個小時後你的回答是OK – Subi