toFixed and replace dons'这似乎奏效了

toFixed and replace doesn't seems to work

本文关键字:replace and dons toFixed      更新时间:2023-09-26

我是jQuery和javascript的新手,我想让它每毫秒增加一次,并用跨度替换每个数字,替换跨度似乎有效,但toFixed导致错误

未捕获的类型错误:无法读取未定义的属性"toFixed"。

有人能帮我吗?

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);

更改此

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

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

该值为字符串,字符串对象中没有toFixed函数。还要注意,该值不是一个会引发异常的数字。