鍍金池/ 問(wèn)答/HTML/ js 實(shí)現(xiàn)的問(wèn)題,感覺(jué)自己寫(xiě)的代碼太坑,求大佬給點(diǎn)優(yōu)化修改

js 實(shí)現(xiàn)的問(wèn)題,感覺(jué)自己寫(xiě)的代碼太坑,求大佬給點(diǎn)優(yōu)化修改

clipboard.png
點(diǎn)擊開(kāi)始每個(gè)1 開(kāi)始 加 到 9 然后停止

下面是我的實(shí)現(xiàn)代碼:

(function(){
    var num = 0;
    var a = "";

    $(".formBOX .btn").click(function(){
    //    console.log(num);
        var li = document.getElementsByClassName("NumO");
        
        
        var timter = setInterval(function(){
            num+=12341;
            a = String(num);
            if(a.length<4){
                a= "0"+"0"+"0"+"0"+a;
                li[0].innerHTML=a.substring(0,1);
            li[1].innerHTML=a.substring(1,2);
            li[2].innerHTML=a.substring(2,3);
            li[3].innerHTML=a.substring(3,4);
            li[4].innerHTML=a.substring(4,5);
            li[5].innerHTML=a.substring(5,6);
            li[6].innerHTML=a.substring(6,7);
            }if(a.length<5){
                a= "0"+"0"+"0"+a;
                li[0].innerHTML=a.substring(0,1);
            li[1].innerHTML=a.substring(1,2);
            li[2].innerHTML=a.substring(2,3);
            li[3].innerHTML=a.substring(3,4);
            li[4].innerHTML=a.substring(4,5);
            li[5].innerHTML=a.substring(5,6);
            li[6].innerHTML=a.substring(6,7);
            }if(a.length<6){
                a= "0"+"0"+a;
                li[0].innerHTML=a.substring(0,1);
            li[1].innerHTML=a.substring(1,2);
            li[2].innerHTML=a.substring(2,3);
            li[3].innerHTML=a.substring(3,4);
            li[4].innerHTML=a.substring(4,5);
            li[5].innerHTML=a.substring(5,6);
            li[6].innerHTML=a.substring(6,7);
            }if(a.length<7){
                a= "0"+a;
            li[0].innerHTML=a.substring(0,1);
            li[1].innerHTML=a.substring(1,2);
            li[2].innerHTML=a.substring(2,3);
            li[3].innerHTML=a.substring(3,4);
            li[4].innerHTML=a.substring(4,5);
            li[5].innerHTML=a.substring(5,6);
            li[6].innerHTML=a.substring(6,7);
            }
            if(a.length=7){
            li[0].innerHTML=a.substring(0,1);
            li[1].innerHTML=a.substring(1,2);
            li[2].innerHTML=a.substring(2,3);
            li[3].innerHTML=a.substring(3,4);
            li[4].innerHTML=a.substring(4,5);
            li[5].innerHTML=a.substring(5,6);
            li[6].innerHTML=a.substring(6,7);
            }
            
            if(num>=9999999){
                clearInterval(timter);
                a="9999999";
            li[0].innerHTML=a.substring(0,1);
            li[1].innerHTML=a.substring(1,2);
            li[2].innerHTML=a.substring(2,3);
            li[3].innerHTML=a.substring(3,4);
            li[4].innerHTML=a.substring(4,5);
            li[5].innerHTML=a.substring(5,6);
            li[6].innerHTML=a.substring(6,7);
            }
        },0.0001);
        
    })
回答
編輯回答
清夢(mèng)

function add (dom){
let num = 0

let timer = setInterval(function () {
    if(num == 9){
        clearInterval(timer);
        return
    }
    num++
    dom.map((item,i)=>{
        dom.eq(i).text(num)
    })
},1000)

}

2018年7月17日 04:31
編輯回答
愛(ài)是癌

what are you 弄啥嘞!這代碼辣眼睛,我不忍心看!

2018年6月12日 05:40
編輯回答
安淺陌

直接這樣吧

var timter = setInterval(function () {
  num += 12341;
  if (num >= 9999999) {
    clearInterval(timter)
    num = 9999999
  }
  var str = String(num).padStart(7, '0')
  str.split('').forEach(function (c, i) {
    li[i].innerHTML = c
  })
}, 0.0001)
2017年6月22日 18:04
編輯回答
別瞎鬧

說(shuō)實(shí)話,沒(méi)搞懂你要的什么效果。
如果是每個(gè)輸入框的數(shù)字從1變到9,那就定時(shí)器中每次加1,更新輸入框內(nèi)容就行了,不用搞個(gè)數(shù)字一直累計(jì)吧。

另外就是代碼中的重復(fù)內(nèi)容太多,在邏輯上明顯是可以合并的。

(function(){
    var timer;
    $(".btn").click(function() {
        timer = setInterval(function(){
            var li = document.getElementsByClassName("NumO");
            if (li[0].innerHTML == '9') {
                clearInterval(timer);
                return;
            }
            for (var i = 0; i < 7; i++) {
                console.log(i);
                var num = parseInt(li[i].innerHTML);
                num++;
                li[i].innerHTML = num;
            }
        }, 100);
    });
})();
2018年9月5日 05:14
編輯回答
終相守
 // 初始值
  let n = 0;
  // 數(shù)值之前補(bǔ)零
  function PrefixInteger(num, length) {
    return (Array(length).join('0') + num).slice(-length)
  }

  // 數(shù)字遞增
  function begin(endNum) {
    let timer = setInterval(function () {
      n++;
      console.log(n);
      if (n >= endNum) {
        clearInterval(timer);
      }
    }, 100)
  }
2018年3月8日 18:45