0

問題は、最初の番号のループを中断し、次の番号のループを再開する方法がわからないことです。現在、1 つのspan.nNumberには 2 つの数字の合計桁数 (123456) があり、次のspan.nNumberには別の数字 (456) の数字のみが含まれています。目標は、シーケンス 123 と 456 を作成することです。

マークアップ:

<span class='nNumber'>
 <span>1</span>
 <span>2</span>
 <span>3</span>
</span> 

<span class='nNumber'>
 <span>4</span>
 <span>5</span>
 <span>6</span>
</span>

JavaScript ():

$('div .number').each(function(){
    var number = $(this).text();
    var i = 0;

    $(this).parent().prepend($("<span class='nNumber'></span>"));
    while(i<number.length)
    {
        $(this).closest('span').hide();
        var nChar = number.charAt(i);  
        i++;
        $('.nNumber').append('<span class="digit-'+nChar+'">'+nChar.split(" ").join(", ")+'</span>');
    }
});​
4

1 に答える 1

1

whileループでは、次を使用します。

$(this).parent().find('.nNumber').append('<span class="digit-'+nChar+'">'+nChar+'</span>');

このようにして、反復しているnNumber内のクラスを常に変更します。divを使用すると、クラスがであるすべての$(".nNumber")要素が取得されます。現在の にない要素も含まれます。そのため、 の 2 番目の反復で余分な桁が最初の に追加されます。nNumberdiv.each()456span

デモ

于 2012-09-19T09:37:38.773 に答える