2

是否有可能将每个字符包装在 Javascript 中并在其小于 X 位时添加零?

我得到/拥有的:

var votes = 2;
//or
var votes = 123;
//or
var votes = 4321;

它应该是什么样子:

<span>0</span><span>0</span><span>0</span><span>2</span>
//or
<span>0</span><span>1</span><span>2</span><span>3</span>
//or
<span>4</span><span>3</span><span>2</span><span>1</span>

所以结果应该是一个四位数的数字。

4

4 回答 4

5

这是一个棘手的版本:

var votes = 123;
("0000" + votes).slice(-4); /* 0123 */

因此,要将每个数字包装在 a 中,<span>您可以使用它来获取每个数字$.map并将其包装到自己的元素中,就像在这个示例小提琴中一样:http: //jsfiddle.net/cZAWj/

var votes = 973;

$.map(("0000" + votes).slice(-4), function(digit) {
    $('<span/>', { text : digit }).appendTo($('body'));
});
于 2012-06-13T15:24:27.047 回答
3

首先,让它看起来像一个字符串并填充它......

   function pad(number, length) {      
        var str = '' + number;
        while (str.length < length) {
            str = '0' + str;
        }       
        return str;
    }

然后您可以对其进行迭代并在每个数字周围添加一个跨度。然后将标记写为父元素的 .html。

于 2012-06-13T15:21:19.397 回答
1

一种方法是将数字转换为字符串并预先附加 0 直到我们达到所需的长度。

所以如果你想要X数字:

var strNb = "" + nb;
while (strNb.length < X){
  strNb = "0" + strNb
}
于 2012-06-13T15:21:41.083 回答
0
function formatNumber(d, x) {
    var l = String(d).length;
    return (l<x?(Array(x-l).join('0') + d):String(d)).replace(/\d/g,"<span>$&</span>");
}
于 2012-06-13T15:26:36.287 回答