2014-02-06 237 views
0

我編寫了這段代碼(javascript倒數),我必須在頁面上放置141個這樣的代碼。 Doese有人知道是否有某種方式(程序,腳本等),將做以下操作:function cdtd1 更改爲function cdtd2var sad1 = new Date();var sad2 = new Date();Javascript需要重構幫助

var d = new Date(); 
var n = d.getDay(); 
if(n == 1 || n == 2 || n == 3 || n == 4 || n == 5){ 
var timer1; 
function cdtd1() { 
    var sad1 = new Date(); 
    var dolazak1 = new Date(sad1.getFullYear(),sad1.getMonth(),sad1.getDate(),23,00,00); 
    var timeDiff1 = dolazak1.getTime() - sad1.getTime(); 
    if (timeDiff1 <= 0) { 
     clearInterval(timer1); 
     $('#dani1Box').remove(); 
     $('#sati1Box').remove(); 
     $('#minute1Box').remove(); 
     $('#sekunde1Box').remove(); 


    } 
    var sekunde1 = Math.floor(timeDiff1/1000); 
    var minute1 = Math.floor(sekunde1/60); 
    var sati1 = Math.floor(minute1/60); 
    var dani1 = Math.floor(sati1/24); 
    sati1 %= 24; 
    minute1 %= 60; 
    sekunde1 %= 60; 

    $("#dani1Box").html(dani1); 
    $("#sati1Box").html('7-Dubrava ' + sati1 + ':'); 
    $("#minute1Box").html(minute1 + ':'); 
    $("#sekunde1Box").html(sekunde1); 

    timer1 = setTimeout(cdtd1, 1000); 
} 

$(document).ready(function() { 
    cdtd1(); 
}); 
} 

回答

0

我相信你正在尋找的是一個javscript循環操作。

for(var i = 1; i <= 141; i++) { 
    console.log(i); 
    // put code in here that has to run 141 times modifying the html target elements by using string concatenation 
    $('#target' + i); // This would be come #target1, #target2, #target3 etc up to 141 
} 

您對變量重命名,因爲你正在重用的變量在每次通過循環這將不會在這種情況下,有必要明確要求。

既然你與時間信息工作,你可能想看看這個Javascript庫:通過一些對這個特定部分的信息http://momentjs.com/和工作:http://momentjs.com/docs/#/durations/

+0

謝謝,但我要修改多個變量如何我可以這樣做嗎? – user3238555

+0

你有什麼教程可以幫助你理解循環,變量和程序流以及執行的一些基本概念?我可以重寫你的代碼並修復你遇到的問題,但這對你學習來說並不是一個很好的機會。 http://www.w3schools.com/js/js_intro.asp可能是一個很好的開始。 :-) –

+0

我讀過的所有tutorals都來自w3schools。我認爲代碼應該如下所示: for(var i = 1; i <= 141; i ++){console.log(i); $('#sad'+ i); $('#cdtd'+ i); ... 但我不明白這是如何工作的代碼,因爲我想在頁面上有140次倒計時,並且男士們必須有140個獨特的腳本,並且將改變頁面上現有的腳本,並且必須生成新的腳本。也許?大聲笑我仍然在學習:D – user3238555