setInterval函数不工作

setInterval function is not working

本文关键字:工作 函数 setInterval      更新时间:2023-09-26

我正在用jQuery制作一个本地时间表。我写了一些代码,但它不起作用。下面是我的代码:

$(document).ready(function(){
    function addZero(i) {
        if (i <= 9) {
            i = "0" + i;
        }
       return i;
    }
    var d = setInterval(function(){
        var z = new Date();
        var h = addZero(z.getHours());
        var m = addZero(z.getMinutes());
        var s = addZero(z.getSeconds();
        var a = '';
        if (h > 11 ) a = "PM" 
        else a = "AM"
        if (h == 16) h = '0'+4
        $('pre').html(h + ":" + m + ":" + s + "&nbsp;" + "a");
    },1000);
});

你犯了一些错误-检查代码

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
  var d,z,h,m,s,a
  function addZero(i) {
    if (i <= 9) i = "0" + i;
    return i;
  }
  d = setInterval( function(){
    z = new Date();
    h = addZero(z.getHours());
    m = addZero(z.getMinutes());
    s = addZero(z.getSeconds());
    a = '';
    if (h > 11 ) a = "PM" 
    else a = "AM"
    if (h == 16) h = '0'+4
    $('#timer').html(h + ":" + m + ":" + s + "&nbsp;" + a);
  },1000);
});
</script>
<pre id="timer"></pre>

您漏了一个)

$(document).ready(function(){
  
   function addZero(i) {
     if (i <= 9) {
        i = "0" + i;
     }
  
    return i;
   }
  
  
   var d = setInterval(function(){
   var z = new Date();
   var h = addZero(z.getHours());
   var m = addZero(z.getMinutes());
   var s = addZero(z.getSeconds());
     
   var a = '';
   if (h > 11 ) {
      a = "PM" ;
   }
   else {
      a = "AM";
   }
  
   if (h == 16) {
       h = '0'+4;
   }
    
   $('pre').html(h + ":" + m + ":" + s + "&nbsp;" + a);
  
   },1000);
  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<pre></pre>

请使用下面的代码在你的代码中有一个函数var d,它是为setInterval声明的,但我没有看到这个函数被调用。它从哪里调用。上面的答案也很好,但全局变量声明在这里不需要为d,z,h,m,s,a在下面的代码。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
  //var d,z,h,m,s,a
  function addZero(i) {
    if (i <= 9) i = "0" + i;
    return i;
  }
  setInterval( function(){
    var z = new Date();
    var h = addZero(z.getHours());
    var m = addZero(z.getMinutes());
    var s = addZero(z.getSeconds());
    var a = '';
    if (h > 11 ) a = "PM" 
    else a = "AM"
    if (h == 16) h = '0'+4
    $('pre').html(h + ":" + m + ":" + s + "&nbsp;" + a);
  },1000);
});
</script>
<pre id="timer"></pre>