在子串中拆分数组并在div中回显它们,jQuery

时间:2012-12-12 14:29:39

标签: javascript arrays

我正在编写一个简单的计数器,它使用当前日期并向其广告一些数字。我希望最终数字的每个数字都显示在它自己的div中,这样我就可以设置它们的样式。这是我正在使用的代码。我得到一个'未定义'不是一个函数(评估('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>');
            });
    }

2 个答案:

答案 0 :(得分:2)

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

尝试:

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);
}

答案 1 :(得分: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]