2016-05-10 39 views
0

jQueryとjavascriptを初めて使用しているので、毎ミリ秒ごとに増やして各桁をスパンに置き換えたいのですが、スパンを置き換えるようですが、toFixedが原因ですエラーtoFixedとreplaceは動作していないようです

Uncaught TypeError: Cannot read property 'toFixed' of undefined.

誰でもこの手伝いできますか?

var valueData = parseFloat($(_this).value); 
if(!isNaN(valueData)){ 
    valueData = valueData.toFixed(options.decimals); 
} 

function getValueTotal(){ 
    var strAnn = ''; 
    $.ajax({ 
     type: 'POST', 
     url: '../a/getTotal', 
     data: {info:4}, 
     dataType: 'json' 
    }).success(function(data){ 
     if(data.status == '0'){ 
      if(data.d.value=="0"){ 
       strAnn = 8414735; 
      }else{ 
       strAnn = data.d.value; 
      }   
     }else{ 
      strAnn = 29451147; 
     } 
     $("#pTotal").html(strAnn); 
      $('#pTotal').countTo({ 
       format: 'money', 
       from: strAnn, 
       to: 999999999.99, 
       speed: 100000000, 
       refresh_interval: 0.00001, 
       on_complete: function(value) { 
        $(this).hide().fadeIn(1000); 
       } 
      }); 

    }); 
} 

(function($) { 
    $.fn.countTo = function(options) { 
     options = $.extend({}, $.fn.countTo.defaults, options || {}); 
     var loops = Math.ceil(options.speed/options.refresh_interval), 
      increment = (options.to - options.from)/loops; 
     return $(this).each(function() { 
      var _this = this, 
       loop_count = 0, 
       value = options.from, 
       interval = setInterval(update_timer, options.refresh_interval); 
      function update_timer() { 
       value += increment; 
       loop_count++; 
       if(options.format == 'money') { 
        // $(_this).html('$' + number_with_commas(value.toFixed(options.decimals))); 
        var valueData = $(_this).value.toFixed(options.decimals); 
        $(_this).html('$' + valueData.replace(/([^\x00-\x80]|\w)/g , ' <span class="some-number">$1</span>')); 

       } else { 
        $(_this).html(value.toFixed(options.decimals)); 
       } 
       if(typeof(options.on_update) == 'function') { 
        options.on_update.call(_this, value); 
       } 
       if(loop_count >= loops) { 
        clearInterval(interval); 
        value = options.to; 
        if(typeof(options.on_complete) == 'function') { 
         options.on_complete.call(_this, value); 
        } 
       } 
      } 

     }); 
    }; 
    $.fn.countTo.defaults = { 
     from: 0, 
     to: 100, 
     speed: 1000, 
     refresh_interval: 100, 
     decimals: 2, 
     on_update: null, 
     on_complete: null 
    }; 
})(jQuery); 

答えて

0

変更この

var valueData = $(_this).value.toFixed(options.decimals); 

値は文字列で、文字列オブジェクトにはtoFixed機能はありません。 また、値が例外をスローする番号ではないことにも注意してください。

+0

私はそれを私に見せてくれます。 – MuthaFury

+1

@MuthaFuryあなたの価値は数字ではないからです。私は答えを –

+0

と編集しました。値が29451147.324234なら、10進数にする方法は? – MuthaFury

関連する問題