【发布时间】:2016-12-06 20:26:21
【问题描述】:
我正在尝试创建一个循环遍历 html 元素数组的脚本,并使用 setTimeout 为每个元素创建倒计时。我真的不知道为什么这不起作用,但这是我的代码,以及它给我的 console.log。
控制台日志 >
-1481055605166 testing.html:61:5
End testing.html:64:5
days-> -17142-hours->-21-minutes->-21-second->-6 testing.html:75:5
NaN testing.html:61:5
days-> NaN-hours->NaN-minutes->NaN-second->NaN testing.html:75:5
NaN testing.html:61:5
days-> NaN-hours->NaN-minutes->NaN-second->NaN*
这里是代码>
var productos = document.querySelectorAll(".producto.med");
function recorrido() {
productos.forEach(function(item) {
var hora = item.querySelector("#hasta");
cdtd(hora);
});
}
var timer = setTimeout(recorrido, 2000);
function cdtd(dia) {
var xmas = new Date(dia);
var now = new Date();
var timeDiff = xmas.getTime() - now.getTime();
console.log(timeDiff);
if (timeDiff <= 0) {
clearTimeout(timer);
console.log("End");
// Run any code needed for countdown completion here
}
var seconds = Math.floor(timeDiff / 1000);
var minutes = Math.floor(seconds / 60);
var hours = Math.floor(minutes / 60);
var days = Math.floor(hours / 24);
hours %= 24;
minutes %= 60;
seconds %= 60;
var total = 'days-> ' + days + '-hours->' + hours + '-minutes->' + minutes + '-second->' + seconds;
console.log(total);
}
<article class="producto med" id='{{$producto->id}}'>
<h4>uno</h4>
<div class="img-producto">
<img src="{{$producto->ruta_imagen}}" alt="producto">
</div>
<div class="datos-producto">
<ul class="tiempo">
<li>desde: <span>{{$producto->fecha_inicio}}</span>
</li>
<li>hasta: <span id="hasta1">2016-12-12 15:45:00</span>
</li>
</ul>
<p class="restante">tiempo restante:</p>
<p class="tiempo">12hs 43m 03s</p>//JS PARA COUNTDOWNL
</div>
<a href="" class="ofertar">Ofertar ahora</a>
</article>
<article class="producto med" id='{{$producto->id}}'>
<h4>dos</h4>
<div class="img-producto">
<img src="{{$producto->ruta_imagen}}" alt="producto">
</div>
<div class="datos-producto">
<ul class="tiempo">
<li>desde: <span>{{$producto->fecha_inicio}}</span>
</li>
<li>hasta: <span id="hasta">2017-12-12 15:45:00</span>
</li>
</ul>
<p class="restante">tiempo restante:</p>
<p class="tiempo">12hs 43m 03s</p>//JS PARA COUNTDOWNL
</div>
<a href="" class="ofertar">Ofertar ahora</a>
</article>
<article class="producto med" id='{{$producto->id}}'>
<h4>tres</h4>
<div class="img-producto">
<img src="{{$producto->ruta_imagen}}" alt="producto">
</div>
<div class="datos-producto">
<ul class="tiempo">
<li>desde: <span>{{$producto->fecha_inicio}}</span>
</li>
<li>hasta: <span id="hasta">2016-12-12 15:45:00</span>
</li>
</ul>
<p class="restante">tiempo restante:</p>
<p class="tiempo">12hs 43m 03s</p>//JS PARA COUNTDOWNL
</div>
<a href="" class="ofertar">Ofertar ahora</a>
</article>
【问题讨论】:
-
不要使用唯一的 id 元素,使用类作为选择器
-
cdtd(hora),其中hora是HTMLElement,然后是new Date(HTMLElement)...
标签: javascript arrays date settimeout