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

Display value as amount and also only display one cell label once using Javascript

本文关键字:显示 一次 标签 单元格 Javascript 金额      更新时间:2023-09-26

抱歉,如果标题有点误导。

我有一个webgrid,在表格底部,我有JavaScript女巫向其添加"总计"行。

这一行显示正常,总数是正确的,有点好。 我的 JavaScript 有 e2 问题,我不知道如何解决它们,因为我对 JavaScript 很陌生。

第一期

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

第二期

我的值是金额 (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 中执行此操作,您能否提供我需要进行的更改的示例。

我已经设法通过在行cell.innerHTML = "£" + total.toFixed(2);中添加.toFixed(2)来解决小数位问题。此问题现已解决。只需要有关重复的帮助,以及如何将我的值格式化为带有","的金额

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

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

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";
            }
        }
    }
}