首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >foreach内部数据属性未更改

foreach内部数据属性未更改
EN

Stack Overflow用户
提问于 2014-11-21 04:57:35
回答 1查看 56关注 0票数 0

我正在使用这个时间计数器,需要根据数据库中的行总数多次显示它。

我有这个javascript来显示时间计数器:

代码语言:javascript
复制
$(function(){

    $('.countdown').each(function() {
        var $this = $(this),
        ts = new Date($('.note').data('ts')),
        newYear = true;

        if((new Date()) > ts){
            newYear = false;
        }
        $this.countdown({
            timestamp   : ts,
            callback    : function(days, hours, minutes, seconds){
                var message = "";
                message += days + " hari" + ( days==1 ? '':'' ) + ", ";
                message += hours + " jam" + ( hours==1 ? '':'' ) + ", ";
                message += minutes + " menit" + ( minutes==1 ? '':'' ) + ", ";
                message += seconds + " detik" + ( seconds==1 ? '':'' ) + " <br />";
                $this.next().html(message);
            }
        });
    });

});

我的桌子是这样的:

代码语言:javascript
复制
id    |      tgl_close1     |   idrek
1     | 2014-11-25 08:00:00 |      1
2     | 2014-11-26 10:00:00 |      1
3     | 2014-11-26 12:10:00 |      1

我把倒计时乘以前奏,但是所有的计数器总是根据第一行tgl_close1值来计数时间,而不是得到下一行值。

以下是我的完整代码:

代码语言:javascript
复制
<?php 
$fetch = mysql_query("select tgl_close1
                      from tba
                      where idrek = 1");

/* Retrieve and store in array the results of the query.*/
while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) {
    $tgl_close1[] = date("Y, n-1, j, G, i, s", strtotime($row['tgl_close1']));


}
foreach ($tgl_close1 as $tglclose){
 ?>
<br>
<table border="0"><tr><td>
<div class="countdown" data-ts="<?php echo $tglclose"></div>
<p class="note"></p>    
</td></tr></table>


<?php
}
}
mysql_close($conn);
?>

<script type="text/javascript">
$(function(){

    $('.countdown').each(function() {
        var $this = $(this),
        ts = new Date($('.note').data('ts')),
        newYear = true;

        if((new Date()) > ts){
            newYear = false;
        }
        $this.countdown({
            timestamp   : ts,
            callback    : function(days, hours, minutes, seconds){
                var message = "";
                message += days + " hari" + ( days==1 ? '':'' ) + ", ";
                message += hours + " jam" + ( hours==1 ? '':'' ) + ", ";
                message += minutes + " menit" + ( minutes==1 ? '':'' ) + ", ";
                message += seconds + " detik" + ( seconds==1 ? '':'' ) + " <br />";
                $this.next().html(message);
            }
        });
    });

});



</script>

有人能告诉我如何在data-ts属性中设置不同的值吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-21 05:00:38

您正在阅读ts = new Date($('.note').data('ts')),这将只给您第一个注意事项。您需要读取位于note div旁边的countdown,将其更改为下面的代码

ts = new Date($(this).next('.note').data('ts'))

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27054385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档