Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从tds添加多个字符串?_Javascript - Fatal编程技术网

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。我将编辑我的答案以反映这一点。好的,明白了!伟大的乔恩·沃伦,这就解决了问题,谢谢你!