1

我正在编写一个简单的计数器,它使用当前日期并向其添加一些数字。我希望最终数字的每个数字都显示在自己的 div 中,以便我可以设置它们的样式。这是我正在使用的代码。我得到一个 'Undefined' is not a function (evalating('y.split("")') 错误,所以我不知道我制作的代码是完全损坏还是这条线不起作用。

var counter = setInterval(timedCount,2000);
    function timedCount()
        {
        var x;
        var y;
        var arrDigit;
        var d=new Date();
        x=d.getTime();
        y=(Math.floor((x-928713600000)/1000))*16-61447952;
        var arrDigit = y.split(""); // this is the error line
        jQuery.each(arrDigit, function(){
                $("#counter").text('<div class="counter-digit">' + this + '</div>');
            });
    }
4

2 回答 2

2

你的 y 是一个整数。你需要把它变成字符串。

尝试:

function timedCount()
{
    var x, y, arrDigit;
    var html='';
    x = new Date().getTime();
    y=(Math.floor((x-928713600000)/1000))*16-61447952;
    var arrDigit = y.toString().split(""); // this is the error line

    $(arrDigit).each(function(){
        html += '<div class="counter-digit">' + this + '</div>');
    });
    $("#counter").html(html);
}
于 2012-12-12T14:35:12.130 回答
1

split 是一个使用字符串(不是数组或 int)并给出数组的函数:

var s = "1,2,3";
console.log(s.split(",")); // ["1", "2", "3"]

我会给每个使用 push() 创建的 jquery 数组:

var a = [];
a.push(1);
a.push(2);
a.push(3);
console.log(a); // [1,2,3]
于 2012-12-12T14:34:13.070 回答