我有以下的JavaScript代码:
<script type="text/javascript">
function doReveal() {
if (@Model.C1 == true) {
document.getElementById('A1').style.backgroundColor = 'yellow';
}
if (@Model.C1 == false) {
document.getElementById('A1').style.backgroundColor = 'yellow';
}
</script>
我希望让函数 doReveal 检查 Model.C1(一个布尔值),并在其为 true 时更改背景颜色。但是我收到一条消息,显示“条件编译被关闭”,并且 Model.C1 下面有一个绿色的波浪线,而且即使我有真和假两种情况,背景颜色也从未发生变化。 我测试了背景修改代码,并且在“if”之外它可以工作。查看页面源代码,我看到了这个:
if (True == true) document.getElementById('A1').style.backgroundColor = 'yellow';
我更改了它并删除了 “==true” 但它仍然不起作用。即使下面的代码也不起作用,但如果我移除 “if(True)” 并设置颜色,则可以正常工作。
if (True) document.getElementById('A1').style.backgroundColor = 'yellow';
有人知道可能出了什么问题吗?
== true
和== false
是新手的标志,所以尽量不要这样做 :) - Domenicif(SomeBoolVar == true)
写成if(SomeBoolVar)
,并且可以将if(SomeBoolVar == false)
写成if(!SomeBoolVar)
。如果布尔变量以适当的前缀命名,如“is”、“has”等,则后者使用更少的字符,并且更易读。 - IsmailS