我目前正在使用以下代码。在控制台中,它正在抛出
未捕获的TypeError:TotalAccountBalance.indexOf不是函数
我不知道还能做什么。搜索没有多大帮助。
var CurrentPreservedBalance, CurrentGeneralAccountBalance, TotalAccountBalance;
CurrentPreservedBalance = '20.56';
CurrentGeneralAccountBalance = '20.56';
if( CurrentPreservedBalance && CurrentGeneralAccountBalance ){
TotalAccountBalance = +CurrentPreservedBalance + +CurrentGeneralAccountBalance;
console.log( TotalAccountBalance.indexOf('.') );
} else {
$('#total-fnpf-account-balance').val('$0.00');
$('#total-account-balance').val('$0.00');
}
答案 0 :(得分:19)
indexOf()
是字符串的方法,而不是数字。
console.log( TotalAccountBalance.toString().indexOf('.') );
答案 1 :(得分:2)
TotalAccountBalance = +CurrentPreservedBalance + +CurrentGeneralAccountBalance;
TotalAccountBalance
是获取两个数字的结果(我们知道它们是数字,因为您使用了一元加运算符来转换它们)并且将加在一起。这是另一个数字。
indexOf
是您在字符串而非数字上找到的方法。
您可以转换为字符串:
(TotalAccountBalance + "").indexOf('.')
答案 2 :(得分:1)
TotalAccountBalance = +CurrentPreservedBalance + +CurrentGeneralAccountBalance;
unary plus operators将字符串转换为数字;为了得到正确的数学结果,这显然是理想的行为。
如果您想使用字符串函数(例如indexOf
),则需要转换回字符串:
console.log( ("" + TotalAccountBalance).indexOf('.') );