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 文字の長さの場合、最初の 2 項目を改行なしの HTML に置き換える必要があります。

&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そのようないくつかのループを使用して、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

あなたが何を望んでいるのか混乱するかもしれませんが、スペースが必要ないようにカウンターを右揃えにしていただけませんか?

そうでない場合は、ここで説明されているようなパッド機能を作成できます。

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

デモ

于 2013-02-07T23:03:10.087 に答える