Javascript秒表希望时钟元素是div而不是输入

Javascript秒表希望时钟元素是div而不是输入,javascript,html,css,Javascript,Html,Css,所以我有下面的代码,正如你在HTML中看到的,我有一个id=clock的div和一个id=clock的输入元素,基本上如果我删除div或注释掉它,输入元素工作得很好,在HTML页面上,输入元素中的时钟将显示时间,我希望它使用div元素进行样式设计;但是,如果我注释掉输入元素并使用div,它就不算了,我想我理解为什么,但我似乎无法修复它。有人能帮我解释一下如何使用下面的代码来实现这一点吗 var flagclock=0; var flagstop=0; var-stoptime=0; var-s

所以我有下面的代码,正如你在HTML中看到的,我有一个id=clock的div和一个id=clock的输入元素,基本上如果我删除div或注释掉它,输入元素工作得很好,在HTML页面上,输入元素中的时钟将显示时间,我希望它使用div元素进行样式设计;但是,如果我注释掉输入元素并使用div,它就不算了,我想我理解为什么,但我似乎无法修复它。有人能帮我解释一下如何使用下面的代码来实现这一点吗

var flagclock=0;
var flagstop=0;
var-stoptime=0;
var-splitcounter=0;
无功电流时间;
var splitdate='';
var输出;
无功时钟;
//起止功能
函数startstop(){
var startstop=document.getElementById('startstopbutton');
var startdate=新日期();
var starttime=startdate.getTime();
如果(flagclock==0){
startstop.value='Stop';
flagclock=1;
计数器(开始时间);
}否则{
startstop.value='Start';
flagclock=0;
flagstop=1;
splitdate='';
}
}
//增量函数
功能计数器(开始时间){
output=document.getElementById('output');
clock=document.getElementById('clock');
currenttime=新日期();
var timediff=currenttime.getTime()-starttime;
如果(flagstop==1){
timediff=timediff+停止时间
}
如果(flagclock==1){
clock.value=格式化时间(timediff,);
刷新=设置超时('计数器('+starttime+);',10);
}否则{
清除超时(刷新);
停止时间=时间差;
}
}
函数formattime(rawtime,roundtype){
如果(roundtype='round'){
var ds=数学四舍五入(原始时间/100)+'';
}否则{
var ds=数学下限(原始时间/100)+'';
}
var sec=数学下限(原始时间/1000);
var min=数学下限(原始时间/60000);
ds=ds.charAt(ds.length-1);
如果(最小值>=60){
startstop();
}
秒=秒-60*分钟+'';
如果(秒字符(秒长度-2)!=“”){
秒=秒字符(秒长度-2)+秒字符(秒长度-1);
}否则{
秒=0+秒字符(秒长度-1);
}
最小值=最小值+“”;
如果(最小字符(最小长度-2)!=“”){
最小=最小字符(最小长度-2)+最小字符(最小长度-1);
}否则{
最小=0+min.charAt(最小长度-1);
}
返回min+':'+sec+':'+ds;
}
//复位功能
函数resetclock(){
flagstop=0;
停止时间=0;
splitdate='';
清除超时(刷新);
输出值=“”;
splitcounter=0;
如果(flagclock==1){
var resetdate=新日期();
var resettime=resetdate.getTime();
计数器(重置时间);
}否则{
clock.value=“00:00:0”;
}
}
//分裂函数
函数splittime(){
如果(flagclock==1){
如果(拆分日期!=''){
var splitold=splitdate.split(“:”);
var splitnow=clock.value.split(“:”);
变量编号=新数组();
变量i=0
对于(i;i

00:00:00


您正在使用
clock.value
设置
元素的内容。这不适用于
元素;您需要改用
innerHTML

clock=document.getElementById('clock')//分频钟
// ...
clock.innerHTML=格式时间(timediff,”);

您正在使用
clock.value
设置
元素的内容。这不适用于
元素;您需要改用
innerHTML

clock=document.getElementById('clock')//分频钟
// ...
clock.innerHTML=格式时间(timediff,”);
有一个id=clock的div和一个id=clock的输入元素

这很糟糕<代码>ID
必须是唯一的。这就是为什么当你两人都在场(身份证相同)时,计数器不工作的原因。它只选择id为
clock
的第一个元素,即
div

它不选择
输入
。如您所见,
getElementById
是单数形式。如果要同时选择这两个类,请添加一个公共类,并使用
getElementsByClassName(className)
选择该类(注意与ID选择器中的
Element
相比的复数
元素
)或
querySelectorAll(className)
并循环遍历它们

我添加了
clock div
作为
div

还有
div
元素没有
value
属性(与
input
不同)。要获取或编辑/操作
div
元素中的文本,应使用
div.innerText
而不是
div.value
。作为补充说明,div可以包含HTML(input不能)。您可以使用
div.innerHTML

因此,基本上您需要更改div的id(如果您还想保留输入),并将
clock.value
更改为
clock.innerText

另一个选项是保留input和div.,并将输入值分配给div.innerText

var flagclock=0;
var flagstop=0;
var-stoptime=0;
var-splitcounter=0;
无功电流时间;
var splitdate='';
var输出;
无功时钟;
//开始Sto