显示值为金额,并且仅使用Javascript显示一次单元格标签

时间:2015-06-16 07:35:47

标签: javascript

对不起,如果标题有点误导。

我有一个webgrid在表格底部我有JavaScript女巫添加一个'Totals'行。

这一行显示正常,总计是正确的,很好。我的JavaScript存在问题,我无法弄清楚如何修复它们,因为我对JavaScript很陌生。

第一期

当一个单元格清空时,显示单词“Totals”。这对于第一个单元格是正确的,因为我想要字段标签,但我不希望它显示在我所有其他空单元格中。

第二期

我的值是金额(GBP),但有些单元格显示超过2位小数。

我的JavaScript

var grid = document.getElementById("clientlisttable");
var total = 0;
var row = grid.insertRow();

if(grid.rows.length > 1)
{
    for (var i = 0; i < grid.rows[1].cells.length; i++)
    {
        var cell = row.insertCell(i);
        if (grid.rows[1].cells[i].innerHTML.indexOf("£") > -1)
        {
            for (var y= 1; y < grid.rows.length-3; y++)
            {
                total = total + parseFloat(grid.rows[y].cells[i].innerHTML.replace("£","").replace(",",""));
            }
            cell.innerHTML = "£" + total;
            cell.className = "clientlisttotals";
            total = 0;
        }
        else
        {
            cell.innerHTML = "Totals";
            cell.className = "clientlisttotals";
        }
    }
}

$('tbody').append(row);

也好奇,如果有办法删除表类。它所在的表类是一个表格悬停,但在这一行我不希望悬停工作,是否还有一种方法可以删除此行?

我也尝试使用.toFixed(2)但运行时出错,除非我使用错了。

我想在JavaScript中这样做,请您提供我需要做出的更改示例。

我设法通过将.toFixed(2)添加到行cell.innerHTML = "£" + total.toFixed(2);来解决小数位问题。此问题现已解决。 只需要帮助复制,以及如何使用','格式化我的价值

我现在设法通过更新cell.innerHTML = "£" + total.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,");来解决逗号问题。此问题现在也已解决。 请帮忙复制

1 个答案:

答案 0 :(得分:0)

下面的代码修复了我在初始帖子中提出的所有问题

var grid = document.getElementById("clientlisttable");
var total = 0;
var row = grid.insertRow();

if(grid.rows.length > 1)
{
    for (var i = 0; i < grid.rows[1].cells.length; i++)
    {
        var cell = row.insertCell(i);
        if (grid.rows[1].cells[i].innerHTML.indexOf("£") > -1)
        {
            for (var y= 1; y < grid.rows.length-2; y++)
            {
                total = total + parseFloat(grid.rows[y].cells[i].innerHTML.replace("£","").replace(",",""));
            }
            cell.innerHTML = "£" + total.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,");
            cell.className = "clientlisttotals";
            total = 0;
        }
        else
        {
            if (cell.cellIndex != "0"){
                cell.innerHTML = "";
                cell.className = "clientlisttotals";
            }
            else{
                cell.innerHTML = "Totals";
                cell.className = "clientlisttotals";
            }
        }
    }
}