我有這個js代碼。它的工作原理,但我注意到我得到了這樣的錯誤。 「TypeError:document.getElementById(...)爲空」 而我注意到在螢火蟲中繼續計數的錯誤。所以我認爲這是繼續進行的for循環。你能看看下面的代碼,告訴我它有什麼問題嗎?這個javascript代碼有什麼問題?它不停止循環
<script>
$(document).ready(function() {
//Create object with the list of due dates
//The 'name' will correspond to the field ID to populate the results
var dueDates = {
'date1':'2017-04-17 09:55:18',
'date2':'2017-05-17 09:55:18',
'date3':'2017-06-17 09:55:18'
};
var timer = setInterval(function() {
//Instantiate variables
var dueDate, distance, days, hours, minutes, seconds, output;
//Set flag to repeat function
var repeat = false;
// Get todays date and time
var now = new Date().getTime();
//Iterate through the due dates
for (var dueDateId in dueDates) {
//Get the due date for this record
dueDate = new Date(dueDates[dueDateId]);
// Find the distance between now an the due date
distance = dueDate - now;
// Time calculations for days, hours, minutes and seconds
days = Math.floor(distance/(1000 * 60 * 60 * 24));
hours = Math.floor((distance % (1000 * 60 * 60 * 24))/(1000 * 60 * 60));
minutes = Math.floor((distance % (1000 * 60 * 60))/(1000 * 60));
seconds = Math.floor((distance % (1000 * 60))/1000);
//Determine the output and populate the corresponding field
output = "OVERDUE";
if (distance > 0)
{
output = days + "d " + hours + "h " + minutes + "m " + seconds + "s";
repeat = true; //If any record is not expired, set flag to repeat
}
document.getElementById(dueDateId).innerHTML = output;
//If flag to repeat is false, clear event
if(!repeat)
{
clearInterval(timer);
}
}
}, 1000);
});
</script>
<div id="date1"></div>
<div id="date2"></div>
<div id="date3"></div>
Google'setInterval'。 – Azim
「重複」變量在您的代碼中始終爲真。 !重複始終評估爲false,clearInterval永遠不會執行 – jrook
還有** 2個月和10天**直到2017-06-17 09:55:18',所以這將循環100天! –