2017-01-09 3 views
-1

Ich habe diese Zahlen funktioniert aber der Buchstabe "T" wurde ersetzt, so dass es nicht angezeigt wird. Weißt du, wie es funktioniert? Vielen Dank.Jquery Number Counter kombiniert in String

function commaSeparateNumber(val){ 
 
    while (/(\d+)(\d{3})/.test(val.toString())){ 
 
    val = val.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,"); 
 
    } 
 
    return val; 
 
} 
 

 
$('.number').each(function() { 
 
    $(this).prop('Counter',0).animate({ 
 
     Counter: $(this).text() 
 
    }, { 
 
     duration: 8000, 
 
     easing: 'swing', 
 
     step: function (now) { 
 
      $(this).text(commaSeparateNumber(Math.ceil(now))); 
 
     } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="col-md-4"> 
 
<div class="count"><div class="number">30</div></div> 
 
<div class="text">text 1</div> 
 
</div> 
 
<div class="col-md-4"> 
 
<div class="count"><div class="number">3000</div></div> 
 
<div class="text">text 2</div> 
 
</div> 
 
<div class="col-md-4"> 
 
<div class="count"><div class="number">700<span>T</span></div></div> 
 
<div class="text">text 3</div>

+0

haben Sie die Spanne mit "T" außerhalb des div.number nur versucht, zu verschieben? – happymacarts

+0

Ich habe versucht, aber ich möchte die Spannweite in der div.number – Tony

+0

Es ist nicht klar, was Sie fragen. Ist das eine Fortsetzung in einer anderen Frage? –

Antwort

1

Das Problem mit Ihrem Code wurde die DOM-Struktur ersetzt Ganze wurde umfassen Spanne 'T' enthalten, so DOM-Struktur aktualisiert wurde. Hier ist Ihre aktualisierten Code

function commaSeparateNumber(val){ 
 
    while (/(\d+)(\d{3})/.test(val.toString())){ 
 
    val = val.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,"); 
 
    } 
 
    return val; 
 
} 
 

 
$('.number').each(function() { 
 
    $(this).prop('Counter',0).animate({ 
 
     Counter: $(this).text() 
 
    }, { 
 
     duration: 8000, 
 
     easing: 'swing', 
 
     step: function (now) { 
 
      $(this).text(commaSeparateNumber(Math.ceil(now))); 
 
     } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="col-md-4"> 
 
<div class="count"><div><span class="number">30</div></div> 
 
<div class="text">text 1</div> 
 
</div> 
 
<div class="col-md-4"> 
 
<div class="count"><div><span class="number">3000</span></div></div> 
 
<div class="text">text 2</div> 
 
</div> 
 
<div class="col-md-4"> 
 
<div class="count"><div><span class="number">700</span><span>T</span></div></div> 
 
<div class="text">text 3</div>

+0

ok. Vielen Dank. Übrigens, wie fügt man einen Abstand zwischen 700T und '' 8.000 -> 8000''' hinzu? . Ich habe versucht, das "," neben dem $ 1 mit einem Leerzeichen wie ''   '' 'zu ersetzen, aber es funktioniert nicht. – Tony

+0

können Sie den "Raum" mit CSS-Rändern ".t { margin-left: 10px; } .count { text-align: rechts; Breite: 100px; } 'oder fügen Sie einfach ein Leerzeichen vor dem t hinzu – happymacarts