2017-05-31 93 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