Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么html通过js脚本显示给定元素而不是其他元素?_Javascript - Fatal编程技术网

Javascript 为什么html通过js脚本显示给定元素而不是其他元素?

Javascript 为什么html通过js脚本显示给定元素而不是其他元素?,javascript,Javascript,这是我的第一个问题。 所以我把这个js链接到html文件。 例如,当我键入时,它会显示js中的小时数,但我无法通过将id更改为“秒”或使用另一个id创建新元素来让它显示任何其他内容。为什么会发生这种情况。我删除了我所有的css和我所有的body标签。只有一个具有不同id的元素,并且只有id=“hours”才能正确显示它。在此之前,我成功地展示了它们中的每一个。 关键是要有一个时钟,显示时间和日期,以及每秒刷新的时间,这样如果你停留在要更改的页面上。 我已经读了好几个小时关于加载和DOM树的帖子,

这是我的第一个问题。 所以我把这个js链接到html文件。 例如,当我键入时,它会显示js中的小时数,但我无法通过将id更改为“秒”或使用另一个id创建新元素来让它显示任何其他内容。为什么会发生这种情况。我删除了我所有的css和我所有的body标签。只有一个具有不同id的元素,并且只有id=“hours”才能正确显示它。在此之前,我成功地展示了它们中的每一个。 关键是要有一个时钟,显示时间和日期,以及每秒刷新的时间,这样如果你停留在要更改的页面上。 我已经读了好几个小时关于加载和DOM树的帖子,但是我想不出来。 先谢谢你。我很感激。 JS:

window.onload=函数(){
someFunction();
函数someFunction(){
设置间隔(时钟,1000);}
}
功能时钟(){
var hours=document.getElementById(“小时”);
var minutes=document.getElementById(“分钟”);
var seconds=document.getElementById(“秒”);
var month=document.getElementById(“月”);
let year=document.getElementById(“年”);
let date=document.getElementById(“日期”);
var h=新日期().getHours();
var m=新日期().getMinutes();
var s=新日期().getSeconds();
var mm=新日期().getMonth();
设yy=newdate().getYear();
设dd=new Date().getDate();
如果(h>24){
h=h-24;
}
h=h<10?“0”+h:h;
m=m<10?“0”+m:m;
s=s<10?“0”+s:s;
yy=yy%100;
yy=`20${yy}`;
开关(毫米){
案例“0”:
mm=‘Яааааа’
打破
案例1:
mm=‘Фааааа’
打破
案例2:
mm=‘Мааааааа’
打破
案例3:
mm='АППа'
打破
案例4:
mm=‘Маа’
打破
案例5:
mm=‘ЮЮЮЮ’
打破
案例6:
mm=‘ЮЮЮ’
打破
案例7:
mm=‘А敪敪С敪’
打破
案例8:
mm=‘С挈挈挈挈挈挈挈挈挈’
打破
案例9:
mm='Бццццц'
打破
案例10:
mm=‘Бцццц’
打破
案例11:
mm=‘Бццццц’
打破
}
hours.innerHTML=h;
minutes.innerHTML=m;
seconds.innerHTML=s;
month.innerHTML=mm;
year.innerHTML=yy;
date.innerHTML=dd;
}

文件
111

您的代码无法工作,因为您删除了代码试图将结果写入的DOM节点

document.getElementById(“月”)
正在DOM中查找ID为“月”的元素。如果找不到任何内容,它将返回null,因此当您稍后尝试将数据写入其innerHTML时,它会出错

包括必要的DOM节点可以很好地工作:

window.onload=function(){
someFunction();
函数someFunction(){
设置间隔(时钟,1000);
}
}
功能时钟(){
var hours=document.getElementById(“小时”);
var minutes=document.getElementById(“分钟”);
var seconds=document.getElementById(“秒”);
var month=document.getElementById(“月”);
let year=document.getElementById(“年”);
let date=document.getElementById(“日期”);
var h=新日期().getHours();
var m=新日期().getMinutes();
var s=新日期().getSeconds();
var mm=新日期().getMonth();
设yy=newdate().getYear();
设dd=new Date().getDate();
如果(h>24){
h=h-24;
}
h=h<10?“0”+h:h;
m=m<10?“0”+m:m;
s=s<10?“0”+s:s;
yy=yy%100;
yy=`20${yy}`;
开关(毫米){
案例“0”:
mm=‘Яааааа’
打破
案例1:
mm=‘Фааааа’
打破
案例2:
mm=‘Мааааааа’
打破
案例3:
mm='АППа'
打破
案例4:
mm=‘Маа’
打破
案例5:
mm=‘ЮЮЮЮ’
打破
案例6:
mm=‘ЮЮЮ’
打破
案例7:
mm=‘А敪敪С敪’
打破
案例8:
mm=‘С挈挈挈挈挈挈挈挈挈’
打破
案例9:
mm='Бццццц'
打破
案例10:
mm=‘Бцццц’
打破
案例11:
mm=‘Бццццц’
打破
}
hours.innerHTML=h;
minutes.innerHTML=m;
seconds.innerHTML=s;
month.innerHTML=mm;
year.innerHTML=yy;
date.innerHTML=dd;
}

问题是当dom元素不存在时,JS会抛出一个错误,该错误会阻止其余代码的执行。它总是能工作数小时的原因是,这是您在js中设置的第一项,因此错误不会发生。首先尝试检查是否存在(这样您可以按照您所寻找的方式进行操作-您可以有条件地拥有这些元素,如果您的用例是这样的,则只能拥有1个)

window.onload=函数(){
someFunction();
函数someFunction(){
设置间隔(时钟,1000);}
}
功能时钟(){
var hours=document.getElementById(“小时”);
var minutes=document.getElementById(“分钟”);
var seconds=document.getElementById(“秒”);
var month=document.getElementById(“月”);
let year=document.getElementById(“年”);
let date=document.getElementById(“日期”);
var h=新日期().getHours();
var m=新日期().getMinutes();
var s=新日期().getSeconds();
var mm=新日期().getMonth();
设yy=newdate().getYear();
设dd=new Date().getDate();
如果(h>24){
h=h-24;
}
h=h<10?“0”+h:h;
m=m<10?“0”+m:m;
s=s<10?“0”+s:s;
yy=yy%100;
yy=`20${yy}`;
开关(毫米){
案例“0”:
mm=‘Яааааа’
打破
案例