javascript - 根据公式和其他单元格中的值计算单元格值

标签 javascript jquery html

我在 HTML 文件中有一个表格,我想根据其他单元格的值和一个单元格的值计算一个单元格的值作为公式。看看这张照片:

my table calculate

在我的表中,三列中有 1900 个比率和三个因子。如何根据各自的公式列值计算结果列值?

注意:我只使用 * , / , + , 和 -在我的公式中。此外,该表有一个 ID ( ratiotable ),但是 <tr><td>没有分配给它们的任何 ID 或类名。

如果你知道另一个网页做了类似的事情,请让我看看。

非常感谢。

编辑: HTML代码是这样的。请注意,我剪掉了一些行。实际行数为1900:

<table>
<thead>
    <tr>
        <th>Ratio Name</th>
        <th>Factor1</th>
        <th>Factor2</th>
        <th>Factor3</th>
        <th>Formula</th>
        <th>Result</th>
    </tr>
</thead>
<tbody>
    <tr>
        <td>Name1</td>
        <td>22</td>
        <td>11</td>
        <td></td>
        <td>Factor1/Factor2</td>
        <td></td>
    </tr>    
    <tr>
        <td>Name2</td>
        <td>22</td>
        <td>33</td>
        <td>11</td>
        <td>Factor1/Factor2*Factor3</td>
        <td></td>
    </tr>  
    <tr>
        <td>Name1</td>
        <td>12</td>
        <td></td>
        <td>4</td>
        <td>(Factor1+Factor2)/Factor3</td>
        <td></td>
    </tr>
</tbody>

最佳答案

这是一个非常有趣的挑战。我整理了一些 JSFiddle here那就是你所描述的。它实质上用对应的值替换了公式的字符串部分,然后评估结果。希望这对您有所帮助!

我的标记

<table>
    <thead>
        <tr>
            <th>Ratio Name</th>
            <th>Factor1</th>
            <th>Factor2</th>
            <th>Factor3</th>
            <th>Formula</th>
            <th>Result</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Name1</td>
            <td>22</td>
            <td>11</td>
            <td></td>
            <td>Factor1/Factor2</td>
            <td></td>
        </tr>    
        <tr>
            <td>Name2</td>
            <td>22</td>
            <td>33</td>
            <td>11</td>
            <td>Factor1/Factor2*Factor3</td>
            <td></td>
        </tr>  
        <tr>
            <td>Name1</td>
            <td>12</td>
            <td></td>
            <td>4</td>
            <td>(Factor1+Factor2)/Factor3</td>
            <td></td>
        </tr>
    </tbody>
</table>

我的 JavaScript

$(function() {
    $('tbody tr').each(function() {
        var $this = $(this),
            f1 = $this.find('td').eq(1).text() || 0,
            f2 = $this.find('td').eq(2).text() || 0,
            f3 = $this.find('td').eq(3).text() || 0,
            formula = $this.find('td').eq(4).text(),
            resultTd = $this.find('td').last();

       formula = formula.replace('Factor1',f1)
                        .replace('Factor2',f2)
                        .replace('Factor3',f3);

        resultTd.text(eval(formula));
    });
});​

关于javascript - 根据公式和其他单元格中的值计算单元格值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11884238/

相关文章:

javascript - QuerySelectorAll 无法打乱该列表的顺序

javascript - canvas.getContext ('2d' );错误

javascript - 未经验证的 HTML 输入数字步骤

javascript - 单击按钮添加 php include

javascript - 使用标记从谷歌地图获取纬度/经度坐标

javascript - Puppeteer:使用 page.querySelectorAll() 不是函数

jquery - HTML 输入不更新值

javascript - Knockoutjs - 动态模板切换之间的转换?

javascript - addEventListener ("change"...输入工作改变innerHTML的值上升但不下降

html - 如何在 html.erb 中对文本使用 Bootstrap