以下代码获取屏幕分辨率并且有效 - 变量ScreenWidth包含正确的值但大于“>”的情况并且小于“<”不起作用,代码始终显示默认图像。将第一种情况更改为“case(ScreenWidth = 800):”确实有效。我也尝试使用“switch(TRUE)”,它完全没有任何功能,甚至不是默认情况。
所以我的问题是“为什么大于/小于运营商不工作?”
<script type="text/javascript">
var ScreenWidth;
ScreenWidth = (screen.width);
switch (ScreenWidth)
{
case (ScreenWidth > 799):
ShowImage = ('Big.jpg');
break;
case (ScreenWidth < 800):
ShowImage = ('Small.jpg');
break;
default :
ShowImage = ('Default.jpg');
}
</script>
答案 0 :(得分:4)
为什么大于/小于运营商不工作?
因为您要将数字(ScreenWidth
)与布尔(ScreenWidth > 799
)进行比较。 switch
使用严格比较对值进行相等性测试,因此比较不同的数据类型将始终生成false
。
将第一个案例更改为
case (ScreenWidth = 800):
确实有效。
那是因为=
是一项作业,而ScreenWidth = 800
的结果是800
,所以您要与一个数字进行比较,这很好。
我也尝试使用“switch(TRUE)”,它完全没有任何功能,甚至不是默认情况。
好吧,JavaScript中不存在TRUE
。 JS 区分大小写。 switch(true)
应该可以正常工作。