我在使用jquery时遇到问题,我使用以下代码以json格式获取日期,此代码可以正常工作。
在console.log(tiempo)中,我可以看到这个日期
2015/11/21 12:34:56
ex.html:15 2016/10/10 12:34:56
ex.html:15 2017/10/10 12:34:56
ex.html:15 2018/10/10 12:34:56
ex.html:15 2019/10/10 12:34:56
但是在HTML中,我只能看到从json收到的第一个日期。
<script type="text/javascript">
function tiempo(tiempo){
console.log(tiempo);
$('.clock').countdown(tiempo, function(event) {
$(this).html(event.strftime('%D days %H:%M:%S'));
});
}
</script>
<script type="text/javascript">
var arr = [
{"transporte":"Servei de Rodalies Barcelona","now":"2015/11/21 12:34:56"},
{"transporte":"Serveis Regionals","now":"2016/10/10 12:34:56"},
{"transporte":"Ferrocarrils","now":"2017/10/10 12:34:56"},
{"transporte":"Metro","now":"2018/10/10 12:34:56"},
{"transporte":"Tram","now":"2019/10/10 12:34:56"}
];
jQuery.each(arr, function(index, value) {
$( ".prueba" ).append('<div class="clock"></div>');
tiempo(value.now);
});
</script>
图像更好地解释。
更新
这个代码,我只显示一个日期
<body>
<div class="clock"></div>
</body>
<script type="text/javascript">
function tiempo(tiempo){
$('.clock').countdown(tiempo, function(event) {
$(this).html(event.strftime('%D days %H:%M:%S'));
});
}
</script>
<script type="text/javascript">
var arr = [
{"transporte":"Servei de Rodalies Barcelona","now":"2015/11/21 12:34:56"},
{"transporte":"Serveis Regionals","now":"2016/10/10 12:34:56"},
{"transporte":"Ferrocarrils","now":"2017/10/10 12:34:56"},
{"transporte":"Metro","now":"2018/10/10 12:34:56"},
{"transporte":"Tram","now":"2019/10/10 12:34:56"}
];
for ( var i = 0 ; i < arr.length ; ++i ) {
tiempo(arr[i].now);
}
</script>
问题出在这段代码(特别是选择器:)上.clock
:
$('.clock').countdown(tiempo, function(event) {
$(this).html(event.strftime('%D days %H:%M:%S'));
});
您在这里所做的是div
使用class设置所有元素的值clock
,而不仅仅是您创建的最后一个元素。
有许多解决方案可以解决您的问题,但是需要最少更改的解决方案是使用类似的jquery
功能last
(从集合中选择最后一个元素):
$('.clock').last().countdown(tiempo, function(event) {
$(this).html(event.strftime('%D days %H:%M:%S'));
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句