Javascript 根据公式和其他单元格中的值计算单元格值
我在HTML文件中有一个表,我想根据其他单元格的值计算一个单元格的值,并将单元格值作为公式。请看这张照片: 在我的表格中,我有1900个比率和三列中的三个因子。如何根据各自的公式列值计算结果列值 注意:我在公式中仅使用Javascript 根据公式和其他单元格中的值计算单元格值,javascript,jquery,html,Javascript,Jquery,Html,我在HTML文件中有一个表,我想根据其他单元格的值计算一个单元格的值,并将单元格值作为公式。请看这张照片: 在我的表格中,我有1900个比率和三列中的三个因子。如何根据各自的公式列值计算结果列值 注意:我在公式中仅使用*、/、+和-。此外,表有一个ID(ratiotable),但是和没有为它们分配任何ID或类名 如果你知道另一个网页做了类似的事情,请让我看看这个 多谢各位 编辑:HTML代码如下所示。注意,我剪了很多行。实际行数为1900: <table> <thead>
*
、/
、+
和-
。此外,表有一个ID(ratiotable
),但是
和
没有为它们分配任何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>
比率名称
第一因子
因素2
因子3
公式
后果
名称1
22
11
因子1/因子2
姓名2
22
33
11
系数1/系数2*系数3
名称1
12
4.
(系数1+系数2)/系数3
遍历所有行并使用javascript eval()函数
function cellValue(x,y){
return $('#ratiotable').find('tr:eq('+(y+1)+')>td:eq('+(x+1)+')').text();
}
function setCellValue(x,y,s){
$('#ratiotable').find('tr:eq('+(y+1)+')>td:eq('+(x+1)+')').text(s);
}
$(function(){
$.each($('#ratiotable tr'),function(i,tr){
var Factor1 = parseInt(cellValue(0,i));
var Factor2 = parseInt(cellValue(1,i));
var Factor3 = parseInt(cellValue(2,i));
var Formula = $.trim(cellValue(3,i));
var Result = eval(Formula);
setCellValue(4,i,Result);
});
});
像一样循环所有行并使用javascript eval()函数
function cellValue(x,y){
return $('#ratiotable').find('tr:eq('+(y+1)+')>td:eq('+(x+1)+')').text();
}
function setCellValue(x,y,s){
$('#ratiotable').find('tr:eq('+(y+1)+')>td:eq('+(x+1)+')').text(s);
}
$(function(){
$.each($('#ratiotable tr'),function(i,tr){
var Factor1 = parseInt(cellValue(0,i));
var Factor2 = parseInt(cellValue(1,i));
var Factor3 = parseInt(cellValue(2,i));
var Formula = $.trim(cellValue(3,i));
var Result = eval(Formula);
setCellValue(4,i,Result);
});
});
就像这是一个非常有趣的挑战。我已经整理了一个和你描述的一样的小东西。它本质上是将公式的字符串部分替换为对应的值,然后计算结果。希望这有帮助 我的标记
<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>
这是一个非常有趣的挑战。我已经整理了一个和你描述的一样的小东西。它本质上是将公式的字符串部分替换为对应的值,然后计算结果。希望这有帮助 我的标记
<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>
你能把你正在使用的html放在哪里吗it@rahul我刚刚编辑了这个问题,现在是gud,你能告诉我你的公式在这个术语中是唯一的因子1因子2…你可以看到Chris Francis的答案我想这会给你一个开始我通常不相信写出这样一个“完整”的解决方案,所以,但我对这件事太感兴趣了,所以没有尝试
/geekout
您是否可以放置用于it@rahul我刚刚编辑了这个问题,现在是gud,你能告诉我你的公式在这个术语中是唯一的因子1因子2…你可以看到Chris Francis的答案我想这会给你一个开始我通常不相信写出这样一个“完整”的解决方案,所以,但我对这件事太感兴趣了,所以没有尝试/geekout
谢谢,但是公式列决定了我应该如何计算结果,不幸的是,表的行数是1900。然后循环每行,获取单元格值并显示结果!谢谢,但公式列决定了我应该如何计算结果,不幸的是,表的行数是1900。然后循环每行,获取单元格值并显示结果!回答得好!为了子孙后代,我还冒昧地将您的代码复制到了答案本身。伟大的答案!为了子孙后代,我还冒昧地将您的代码复制到了答案本身。