0

我正在尝试使用 JS 执行一些非常基本的操作。我有一个倒计时,它检索隐藏标签剩余的秒数,然后解析它。在函数结束时,我希望它从 span 标签中的秒数中删除间隔计时器。目前我已经完成了:

parseInt($(this).find("#sqbTimestamp").text()) - 3;

然后我使用 setTimeout(function,2) 每 2 秒运行一次(给它第二个处理余地)。但是,每次运行该函数时,上述计算输出到控制台日志中的数字都是相同的。

这是完整的代码:

function countdownProcedure(){
        var interval = 10000;
        var i = 0;
        var seconds = null;
        console.log(c ++)
        $(".rfqTbl tr").each(function(){
                if(i > 0){
                        seconds = $(this).find("#sqbTimestamp").text();
                        var tsInt = parseInt($(this).find("#sqbTimestamp").text());

                        var days = Math.floor(seconds / (60*60*24));
                        seconds -= days * 60 * 60 * 24;
                        var hours = Math.floor(seconds / (60*60));
                        seconds -= hours * 60 * 60;
                        var minutes = Math.floor(seconds / 60);
                        seconds -= minutes * 60;

                        //$(this).find("#sqlTimestamp").text(newTS);
                        console.log(tsInt - 3);

                        if(days < 1){ days=""; }
                        $(this).find("#countDown").html(days + "<pre> Days</pre> " + hours + "<pre>:</pre>" + minutes + "<pre>:</pre>" + seconds);
                        $(this).find("#countDown").append(i + "  -  " + seconds);
                        if(days > 1){
                                $(this).find("#countDown").css({
                                        'color':'#2A7F15',
                                        'font-weight':'bold'
                                });
                        };
                        if(days < 1){
                                $(this).find('#countDown').css('color','red');
                                $(this).find('#countDown pre:nth-of-type(1)').css('display','none');
                        }
                        if(seconds < 10){ $(this).find("#countDown").append("&nbsp;"); };
                        if(minutes < 60){ interval = 1000; };
                }
                i++;
        });
        setTimeout(countdownProcedure,interval);
};
4

1 回答 1

0

$(this).find("#sqbTimestamp").html(tsInt + 1);代码段更改跨度容器中的秒数。

//Run countdown proecudure
countdownProcedure();

var runNo = 0;
function countdownProcedure(){
        var interval = 10000;
        var i = 0;
        var seconds = null;
        runNo++;
        $(".rfqTbl tr").each(function(){
                if(i > 0){
                        seconds = $(this).find("#sqbTimestamp").text();
                        var tsInt = parseInt($(this).find("#sqbTimestamp").text());
                        $(this).find("#sqbTimestamp").html(tsInt + 1);

                        var days = Math.floor(seconds / (60*60*24));
                        seconds -= days * 60 * 60 * 24;
                        var hours = Math.floor(seconds / (60*60));
                        seconds -= hours * 60 * 60;
                        var minutes = Math.floor(seconds / 60);
                        seconds -= minutes * 60;

                        $(this).find("#sqlTimestamp").text(tsInt - 3);
                        console.log(tsInt - 3);

                        if(days < 1){ days=""; }
                    $(this).find("#countDown").html(days + "<pre> Days</pre> " + hours + "<pre>:</pre>" + minutes + "<pre>:</pre>" + seconds + "<pre>Run Number: " + runNo + "</pre>");

                        if(days > 1){
                                $(this).find("#countDown").css({
                                        'color':'#2A7F15',
                                        'font-weight':'bold'
                                });
                        };
                        if(days < 1){
                                $(this).find('#countDown').css('color','red');
                                $(this).find('#countDown pre:nth-of-type(1)').css('display','none');
                        }
                        if(seconds < 10){ $(this).find("#countDown").append("&nbsp;"); };
                        if(minutes < 60){ interval = 1000; };
                }
                i++;
        });
        setTimeout(countdownProcedure,interval);
};
于 2013-07-04T12:29:22.213 回答