我正在开发一个函数,需要返回左边的单元格和当前单元格上方的单元格的总和。因此,细胞+在细胞上方=细胞内容。
$('#' + value + ' .runningStore').each(function () {
$.each(this.cells, function () {
if (!isNaN(parseInt($(this).prev('tr').text()))) {
var td1 = parseInt($(this).prev('tr').text());
}
if (!isNaN(parseInt($(this).prev().text()))) {
var td2 = parseInt($(this).prev().text());
}
var sum = (td1 + td2);
$(this).html(td2);
});
});
我能够成功地获取左侧单元格的值(var td2),但我似乎无法弄清楚或找到一个工作示例(或我自己弄清楚)将单元格置于当前单元格之上
该函数循环遍历整个行以及上面单元格+单元格左侧的每个单元格总和。
答案 0 :(得分:1)
尝试将第一个 if 替换为此<:p>
if (!isNaN(parseInt($(this).closest('tr').prev().text()))) {
var tr = $(this).closest('tr').prev();
var td1 = parseInt($(tr.find('td')[i]).text());
}
其中 i 是当前单元格的索引,它作为第一个参数传递给$ .each回调函数
答案 1 :(得分:1)
您需要保存当前单元格的索引var = index
,搜索上一个tr,然后找到具有相同索引的子项var = prevRow
。
我编码,像这样:
var index = $(this).index();
var prevRow = $(this).closest('tr').prev().find('td:nth-child('+index+')').text();
if ( !isNaN(parseInt(prevRow)) ) {
var td1 = parseInt(prevRow);
}
更好地帮助您理解的密码本(检查控制台以查看输出)
http://codepen.io/sandrina-p/pen/LkJVXA
一个提示: - 使用变量来避免重复的代码。