Javascript 如何从tds添加多个字符串?
我正在尝试添加多个金额为美元的字符串。我从我的Javascript 如何从tds添加多个字符串?,javascript,Javascript,我正在尝试添加多个金额为美元的字符串。我从我的parseFloat中得到了转换的NaN,但我删除了美元符号和任何逗号。有什么建议吗 我试着简单地添加它们,而不使用parseFloat,但我只得到一个串联字符串 function calculateTotalCost() { var amt; var subTotal; for(i=1; i < 9; i++) { amt = document.getElementById("cphMain_
parseFloat
中得到了转换的NaN,但我删除了美元符号和任何逗号。有什么建议吗
我试着简单地添加它们,而不使用parseFloat
,但我只得到一个串联字符串
function calculateTotalCost()
{
var amt;
var subTotal;
for(i=1; i < 9; i++)
{
amt = document.getElementById("cphMain_gridPC").rows[i].cells[1].innerHTML;
var amtNum = amt.replace('$', '');
var amtF = amtNum.replace(',', '');
if(isNaN(amtF))
{
subTotal += 0.00;
}
else
{
subTotal += parseFloat(amtF);
alert(subTotal);
}
}
alert(subTotal);
}
函数calculateTotalCost()
{
var-amt;
var小计;
对于(i=1;i<9;i++)
{
amt=document.getElementById(“cphMain\u gridPC”).rows[i]。cells[1]。innerHTML;
var amtNum=金额替换(“$”,“);
var amtF=amtNum.replace(',','');
if(isNaN(amtF))
{
小计+=0.00;
}
其他的
{
小计+=浮动汇率(amtF);
警报(小计);
}
}
警报(小计);
}
我希望将小计或每个tds值相加。使用类似的替换方法,只替换字符串中该模式的第一个实例。可能发生的情况是,像“3000000”这样的数字正在变为“3000000”,这就是为什么您仍然得到isNaN(amtF)==true 试试这个:
var amtF = amtNum.replace(/,/g, '');
斜杠而不是引号表示您正在搜索正则表达式模式,这还允许您使用g标志。这代表全局,意味着该模式的所有实例都将被替换
编辑:
问题可能是您忘记将小计初始化为零。更改此项:
var subTotal;
为此:
var subTotal = 0;
使用这样的替换方法只替换字符串中该模式的第一个实例。可能发生的情况是,像“3000000”这样的数字正在变为“3000000”,这就是为什么您仍然得到isNaN(amtF)==true 试试这个:
var amtF = amtNum.replace(/,/g, '');
斜杠而不是引号表示您正在搜索正则表达式模式,这还允许您使用g标志。这代表全局,意味着该模式的所有实例都将被替换
编辑:
问题可能是您忘记将小计初始化为零。更改此项:
var subTotal;
为此:
var subTotal = 0;
我知道,但我测试时没有那么大的数字。我会试试看。你能举个例子说明在替换之前,
amt
等于多少吗?是的,通常是$500.00
或$3000.00
啊,我现在看到了。您忘了为小计设置初始值,因此它没有最初将amtF
添加到0,而是尝试将其添加到undefined
,这将导致NaN。我将编辑我的答案以反映这一点。好的,明白了!伟大的乔恩·沃伦,这就解决了问题,谢谢你!我知道,但我测试时没有那么大的数字。我会试试看。你能举个例子说明在替换之前,amt
等于多少吗?是的,通常是$500.00
或$3000.00
啊,我现在看到了。您忘了为小计设置初始值,因此它没有最初将amtF
添加到0,而是尝试将其添加到undefined
,这将导致NaN。我将编辑我的答案以反映这一点。好的,明白了!伟大的乔恩·沃伦,这就解决了问题,谢谢你!