2017-01-09 66 views
-1

我得到這些數字工作,但字母「T」已被替換,以便它不會顯示。你們有沒有關於如何讓它工作的想法。非常感謝你。jquery數字計數器結合字符串

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

你嘗試過移動與div.number的「T」之外的跨度? – happymacarts

+0

我已經嘗試過,但我想跨度內div.number – Tony

+0

目前還不清楚你在問什麼。這是其他問題的延續嗎? –

回答

1

與您的代碼的問題是它是替換整個DOM結構包括含有「T」所以DOM結構已經更新跨度。 這裏是你更新的代碼

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

好的。謝謝。順便說一句,如何在700T和'''8,000 - > 8 000'''之間加一個空格? 。我曾嘗試用''' '''替代$ 1之外的「,」,但它不起作用。 – Tony

+0

您可以使用CSS邊距調整「空間」.t {margin:left:10px; } .count { text-align:right; width:100px; }或簡單地在 t之前添加一個空格字符 – happymacarts