我正在尝试将倒计时脚本附加到循环的动态div。倒数显示在循环外,没有问题,但是控制台日志显示queryselector在循环内为空。如果有人可以提供帮助,将不胜感激
var expiration = data[i]['expiration'];
function getTimeRemaining(expiration) {
var t = Date.parse(expiration) - Date.parse(new Date());
var seconds = Math.floor((t / 1000) % 60);
var minutes = Math.floor((t / 1000 / 60) % 60);
var hours = Math.floor((t / (1000 * 60 * 60)) % 24);
var days = Math.floor(t / (1000 * 60 * 60 * 24));
return {
'total': t,
'days': days,
'hours': hours,
'minutes': minutes,
'seconds': seconds
};
}
function initializeClock(id, expiration) {
var clock = document.getElementById(id);
var daysSpan = clock.querySelectorAll('.days');
var hoursSpan = clock.querySelectorAll('.hours');
var minutesSpan = clock.querySelectorAll('.minutes');
var secondsSpan = clock.querySelectorAll('.seconds');
function updateClock() {
var t = getTimeRemaining(expiration);
daysSpan.innerHTML = t.days;
hoursSpan.innerHTML = t.hours;
secondsSpan.innerHTML = ('0' + t.minutes).slice(-2);
secondsSpan.innerHTML = ('0' + t.seconds).slice(-2);
if (t.total <= 0) {
clearInterval(timeinterval);
}
}
updateClock();
var timeinterval = setInterval(updateClock, 1000);
}
initializeClock('clockdiv', expiration);
if (email == "") {
if (promoType == "Banner") {
$('#load-container-expiring').append('<div class="row-center-center padding-top-5 padding-bottom-2"><div>' + promoNameExpiringButton + '</div></div>');
$('#load-container-expiring').append('<div><div class="wrap-content"><img class="mobile-banner-scale" id="visitor-banner-click" src=' + theBanner + '></div></div>');
-- >>> Issue Here-- - > $('#load-container-expiring').append('<div id="clockdiv"><span class="days"></span> Days <span class="hours"></span> Hours <span class="minutes"></span> Minutes <span class="seconds"></span> Seconds</div>');
}
在您呼叫initializeClock('clockdiv', expiration)
时,标识为“ clockdiv”的div
还不存在。因此clock
将是不确定的,并且clock.querySelectorAll(...)
将生成异常。
将那个[clockdiv]元素添加到DOM的代码下面移动initializeClock('clockdiv', expiration)
。
也将第一个secondsSpan.innerHTML =
固定为minutesSpan.innerHTML =