用一个if语句更改两个值
change two values with one if statement
我刚刚开始学习javascript,所以这可能是一个非常简单的问题。我试着寻找答案,但我想我只是知道得不够,不能说,‘哦,这看起来不一样,但也回答了我的问题。’
我想做的是根据一天中的时间更改页面的背景色,也根据一天的时间更改图像。我有一个if…else-if…语句用于放置在页首的背景色,还有一个单独的if…else if…语句影响正文中的图像。
改变bg颜色的头脚本看起来像:
var d=new Date();
var time=d.getHours();
if (time>=0 && time<=5)
{
document.write ('<body style="background-color: 296688">')
}
else if
然后是其他时间,每个时间都有不同的颜色。
更改图像的正文脚本如下所示:
<img src="" name="sunMoon" id="sunMoon" />
<script type="text/javascript">
var d=new Date();
var time=d.getHours();
var elem = document.getElementById('sunMoon')
if (time>=0 && time<=5)
{
elem.src = 'Images/sunMoon1.png'
}
else if
然后是其他时间,每个时间都有不同的src。
是否可以在头部使用相同的if…else if…语句来更改图像和背景颜色?我在脑子里试过这样的东西:
var d=new Date();
var time=d.getHours();
var elem=document.getElementById('sunMoon')
if (time>=0 && time<=5)
{
document.write ('<body style="background-color: 2966B8">');
elem.src="images/sunMoon1.png"
}
else if...
但没有奏效。
我认为对于第三个(非工作)示例,要么不可能有一个if…做两件事(更改bg颜色和图像),要么我只是把图像代码搞砸了。
您的第三个(非工作)代码位的问题是,您试图更改脚本运行时不存在的元素的源属性。一般来说,浏览器从上到下解析页面的HTML,当它遇到一个块时,它会运行代码,然后继续浏览HTML。因此,在本例中,您使用的JavaScript代码会更改HTML中元素后面的图像源,这就是它工作的原因。在损坏的代码中,您在head部分调用elem=document.getElementById('sunMoon')
,因此还不存在ID为"sunMoon"的元素。
通常,最佳做法是将脚本放在页面底部(刚好在关闭标记之前),以便它们在加载完所有其他内容后运行,并且不会阻止页面的呈现。如果你要这样做,你需要更改改变背景颜色的代码,因为你不能直接将其写入body标签。最佳实践解决方案是根据一天中的时间将不同的CSS类应用于正文,然后为CSS中的每个类设置样式规则。
例如:
<script type="text/javascript">
var body = document.getElementsByTagName('body')[0];
var elem = document.getElementById('sunMoon');
if (time>=0 && time<5)
{
body.className = 'morning';
elem.src = 'Images/sunMoon1.png';
}
else if (time>=5 && time<10)
{
body.className = 'afternoon';
elem.src = 'Images/sunMoon2.png';
}
</script>
然后在CSS中,您需要.morning
、.afternoon
等的规则
是的,你可以,你可以这样改变机身风格:
document.body.style.backgroundcolor = color;
是的,您可以使用
var d=new Date();
var time=d.getHours();
var elem=document.getElementById('sunMoon')
if (time>=0 && time<=5)
{
document.body.style.backgroundImage ="images/sunMoon1.png";
document.body.style.backgroundColor = "#2966B8";
}
使用onload
事件
<html>
<head>
<script>
function onBodyload(e){
var image = document.getElementById('sunMoon');
if(condition){
document.body.style.backgroundcolor = ...
image.src = ...
}else if(condition){
document.body.style.backgroundcolor = ...
image.src = ...
}else if...
}
</script>
</head>
<body onload="onBodyload">
...
...
</body>
</html>
- 如何应用带过滤器的ng if来过滤记录,并在同一页面中显示两个不同的视图
- 比较IF条件下的两个javascript数值
- 识别两个文本中的单词(if 语句在 for 循环中)
- 在if语句中检查这两个条件,即使第一个条件为false
- 我的if和else-if逻辑中的问题以及两个函数的冲突
- 使用带有两个变量的相同if-else语句
- 如何组合两个if语句以使用或运算符
- 如果在 JavaScript 中的 if 条件之后在执行块中使用两个等于而不是只有一个,会发生什么情况
- 节点 js 中的两个 if 语句
- if 语句 (jQuery) 中的两个条件
- 为什么我的两个 if 语句都激活了
- jQuery - 如何计算 if/else 语句的两个选择选项值
- 可以't获取if语句的正确顺序:将运行这两个语句
- 如何将这两个IF语句合并为一个
- jQuery-If语句,将两个If's
- 两个if在JS脚本中
- 我怎样把两个if语句组合成一个
- Javascript:两个if类型的未定义语句给出不同的结果
- 两个if语句总是连接在一起,即使它不为真
- 不能得到两个if else语句工作?检查字符串和数字