0

我无法为一个简单的香草 javascript 闹钟制定正确的逻辑,它会在用户设置的时间显示一条消息/播放声音......帮助我使逻辑正确。

这是我的 JavaScript 代码:

        <script>
            function setAlarm(){
             //taking value  of time
            var a=document.getElementById("H").value;
            var b=a*3600000;//converted to millisecound
            var c=document.getElementById("M").value;
            var d=c*60000;//converted to millisecound
            var e=d+b;//addition of millisecound
            

             //live values of time
            var f=h*3600000;//converted to millisecound
            var g=m*60000;//converted to millisecound
            var i=g+h;//addition of millisecound

                

                var j=0;
                if(i>=e){
                   j=i-e;
                }else{
                   j=e-i;
                }//else
            document.getElementById("demo2").innerHTML=j;
                setInterval(test,j);
                if (d==g){
                    console.log("if called");
                    test();
                }//if
            }
            function test(){
                console.log("test called")
                document.getElementById("demo2").innerHTML="its work";
            }
            var d=new Date();
               var h=d.getHours();
               document.getElementById("hours").innerHTML=h;
   
               var m=d.getMinutes();
               document.getElementById("minutes").innerHTML=m;
   
               var s=d.getSeconds();
               document.getElementById("secound").innerHTML=s;



            setInterval(repeat,1000);

            function repeat(){
               var d=new Date();
               var h=d.getHours();
               document.getElementById("hours").innerHTML=h;
   
               var m=d.getMinutes();
               document.getElementById("minutes").innerHTML=m;
   
               var s=d.getSeconds();
               document.getElementById("secound").innerHTML=s;
               
            }
            var i=0;
           function ChangeTheam(){
                i++;
                if(i%2){
                    document.body.style.backgroundColor= "black";
                    document.getElementById("hours").innerHTML.style.color = "blue";
                }else{
                    document.body.style.backgroundColor= "white";
                }//else
           }//change theam function
            
        </script>

如果有人愿意,我可以提供 HTML 代码,但我认为这没有必要,因为我一开始就无法正确地制定逻辑。

谢谢 :)

4

1 回答 1

0

在您的代码中

 //live values of time
 var f=h*3600000;//converted to millisecound
 var g=m*60000;//converted to millisecound
 var i=g+h;//addition of millisecound`

您添加g+h而不是g+f因此触发警报所需的时间可能会大大缩短。

var s=d.getSeconds();
document.getElementById("secound").innerHTML=s;

我不确定这是否正是您对元素的标识,我假设您的意思是“第二”而不是“第二”

否则,我认为您的代码没有问题,应该可以正常工作。

于 2020-02-12T05:25:41.277 回答