Javascript .getElementById(“getElementById”)未按要求工作
我试图根据时间改变标题(h1)中的文本。该值不会更改。不确定它为什么不起作用-迄今为止尝试了多种更改和解决方案Javascript .getElementById(“getElementById”)未按要求工作,javascript,html,innerhtml,Javascript,Html,Innerhtml,我试图根据时间改变标题(h1)中的文本。该值不会更改。不确定它为什么不起作用-迄今为止尝试了多种更改和解决方案 <html> <head> <link href='https://fonts.googleapis.com/css?family=Lato:100' rel='stylesheet' type='text/css'> </head> <body> <center> <img src = "im
<html>
<head>
<link href='https://fonts.googleapis.com/css?family=Lato:100' rel='stylesheet' type='text/css'>
</head>
<body>
<center>
<img src = "image.png" width = "25%" height = "auto"/>
<h1 id = "ce" style="font-weight: normal; font-family: 'lato', sans-serif; font-size:80px;">No Event</h1>
</center>
<iframe id="ytplayer" type="text/html" width="100%" height="500"
src="http://www.youtube.com/embed/M7lc1UVf-VE?autoplay=1&origin=http://example.com"
frameborder="0"/>
<script>
function headerChange(){
var d = new Date();
var m = d.getMinutes();
var h = d.getHours();
if(h == 7 && m>=45){
document.getElementById("ce").innerHTML = "event1";
}
if(h == 8 && m>=00){
document.getElementById("ce").innerHTML = "event2";
}
if(h == 8 && m>=15){
document.getElementById("ce").innerHTML = "event3";
}
if(h == 8 && m>=45){
document.getElementById("ce").innerHTML = "event4";
}
if(h == 9 && m>=00){
document.getElementById("ce").innerHTML = "event5";
}
if(h == 9 && m>=15){
document.getElementById("ce").innerHTML = "event6";
}
}
headerChange();
setTimeout(headerChange, 1000);
</script>
</body>
</html>
无事
函数头更改(){
var d=新日期();
var m=d.getMinutes();
var h=d.getHours();
如果(h==7&&m>=45){
document.getElementById(“ce”).innerHTML=“event1”;
}
如果(h==8&&m>=00){
document.getElementById(“ce”).innerHTML=“event2”;
}
如果(h==8&&m>=15){
document.getElementById(“ce”).innerHTML=“event3”;
}
如果(h==8&&m>=45){
document.getElementById(“ce”).innerHTML=“event4”;
}
如果(h==9&&m>=00){
document.getElementById(“ce”).innerHTML=“event5”;
}
如果(h==9&&m>=15){
document.getElementById(“ce”).innerHTML=“event6”;
}
}
headerChange();
设置超时(headerChange,1000);
请关闭磁头更换功能。我认为它缺少结束括号。
其次,您正在使用setTimeout和递归调用。我建议不要递归地调用它,你可以这样做
function headerChange(){
var d = new Date();
var m = d.getMinutes();
var h = d.getHours();
if(h == 7 && m>=45){
document.getElementById("ce").innerHTML = "event1";
}
if(h == 8 && m>=00){
document.getElementById("ce").innerHTML = "event2";
}
if(h == 8 && m>=15){
document.getElementById("ce").innerHTML = "event3";
}
if(h == 8 && m>=45){
document.getElementById("ce").innerHTML = "event4";
}
if(h == 9 && m>=00){
document.getElementById("ce").innerHTML = "event5";
}
if(h == 9 && m>=15){
document.getElementById("ce").innerHTML = "event6";
}
}
setTimeout(headerChange, 1000);
var myVar=设定间隔(水头变化,1000);
函数头更改(){
var d=新日期();
var m=d.getMinutes();
var h=d.getHours();
var elem=document.getElementById(“ce”);
如果(h==7&&m>=45){
elem.innerHTML=“event1”;
}否则如果(h==8&&m>=00){
elem.innerHTML=“event2”;
}否则如果(h==8&&m>=15){
elem.innerHTML=“event3”;
}否则如果(h==8&&m>=45){
elem.innerHTML=“event4”;
}否则如果(h==9&&m>=00){
elem.innerHTML=“event5”;
}否则如果(h==9&&m>=15){
elem.innerHTML=“event6”;
}
}
谢谢您的回答@拉克曼解决了这个问题。这是youtube iFrame。一旦我删除了特定的演示iFrame,我的代码就开始工作了。setTimeout
只运行一次函数,使用setInterval
,或者在headerChange
中添加另一个setTimeout
。好的,但是您会看到,它甚至一次也没有改变..您错过了函数header change的关闭}
该代码仅在上午7:45到9:59之间更改标头。。。你在正确的时间测试了吗?此外,您应该将脚本放入头部
或正文
,当前HTML无效。是。我试过正确的时间。
<script>
var myVar = setInterval(headerChange, 1000);
function headerChange(){
var d = new Date();
var m = d.getMinutes();
var h = d.getHours();
var elem = document.getElementById("ce");
if(h == 7 && m>=45){
elem.innerHTML = "event1";
}else if(h == 8 && m>=00){
elem.innerHTML = "event2";
}else if(h == 8 && m>=15){
elem.innerHTML = "event3";
}else if(h == 8 && m>=45){
elem.innerHTML = "event4";
}else if(h == 9 && m>=00){
elem.innerHTML = "event5";
}else if(h == 9 && m>=15){
elem.innerHTML = "event6";
}
}
</script>