0

我有以下 JQUERY 函数:

function siteCounterUpdate(n) {
    $('ul#indexSiteCounterBottom').empty();
    for(i=0;i<9;i++) {

            //alert(n.toString()[i]);

      $('ul#indexSiteCounterBottom').append('<li>'+n.toString()[i]+'</li>');
      $('ul#indexSiteCounterBottom li:nth-child(3n)').addClass('extra-margin');
    }
}

该函数接收一个数字(字符串),如果它的长度为 9 个字符,则它可以完美运行。9是全长。

但是,如果数字说 7 个字符长,我需要用 HTML 替换前 2 个项目,没有空格。

&nbsp; 

我正在努力理解如何做到这一点。

例如:6 个字符的长字符串将是 1.nbsp 2.nbsp 3.nbsp 4 - 9.字符串。

任何建议都会很棒。

谢谢

4

4 回答 4

3

以下是填充字符串的方法:

function padString (str, len, padWith) {
    var padLength = len - str.length;
    return padLength < 1 ? str : Array(padLength + 1).join(padWith) + str;
}

示例用法:

padString('1234567899', 9, '&nbsp;'); // "1234567899"
padString('123456789', 9, '&nbsp;');  // "123456789"
padString('12345678', 9, '&nbsp;');   // "&nbsp;12345678"
padString('1234567', 9, '&nbsp;');    // "&nbsp;&nbsp;1234567"
padString('234567', 9, '&nbsp;');     // "&nbsp;&nbsp;&nbsp;234567"

这是小提琴:http: //jsfiddle.net/8JdwP/

于 2013-02-07T22:52:02.993 回答
1

您可以使用几个for这样的循环来计算您的 's 和and字符串之间的n和:9&nbsp;0n

function siteCounterUpdate(n) {
    var target = $('ul#indexSiteCounterBottom').empty();

    for (var i=n.length;i<9;i++) {
        target.append('<li>&nbsp;</li>');
    }

    // `i` doesn't have to be declared again because there's no block
    // scope in JavaScript, but I think it looks ugly otherwise :(.
    for (var i=0;i<n.length;i++) {
        target.append('<li>' + n + '</li>');
    }
}
于 2013-02-07T22:49:06.697 回答
1

我可能对你想要什么感到困惑,但你能不能把柜台右对齐,这样你就不需要空格了?

如果没有,您可以创建一个 pad 函数,如此所述。

于 2013-02-07T22:59:29.397 回答
0
while (yourString.length < 9)
{
    yourString = "\u00A0" + yourString;   
}

演示

于 2013-02-07T23:03:10.087 回答