我在 HTML 文件中有一个表格,我想根据其他单元格的值和一个单元格的值计算一个单元格的值作为公式。看看这张照片:
在我的表中,三列中有 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/