0

我试图使用发布在这里的发布时间更新脚本。它工作得很好,除了在 Mobile Safari 上它会产生 NAN 错误。我试图打印出每个变量以查看 NAN 的来源,但没有骰子。如果有人可以帮助我找出错误是在哪里产生的,我应该能够找到解决办法。或者甚至帮助我弄清楚如何最好地找到错误的来源。实际代码如下。

<script src="js/jquery-1.6.3.min.js"></script>
<script>
$(document).ready(function(){   
$.fn.UpdateSince = function(interval) {

var times = this.map(function(){ return { e: $(this), t: parseInt($(this).html()) }; });
var format = function(t) {
    if (t > 60) {
        return Math.floor(t / 60) + ' minutes ago'
    } else {
        return t + ' seconds ago';
    }
}

var update = function(){
    var now = new Date().getTime();
    $.each(times, function(i, o){
        o.e.html(format(Math.round((now - o.t) / 1000)));
    });
};            
window.setInterval(update, interval);
update();

return this;
}
}); 
</script>
<script>
$(document).ready(function(){   
$('.TimeSince').UpdateSince(1000);
}); 
</script>   

编辑:Mobile Safari 调试控制台没有显示错误,但所有输出整数都是 NaN。

4

1 回答 1

1

我的猜测是它在这里:

var times = this.map(function(){ return { e: $(this), t: parseInt($(this).html()) }; });

如果$(this).html()为空,它将失败。

于 2012-09-18T16:12:53.920 回答