JQuery - 直接在当前单元格上方获取单元格的值

时间:2016-08-01 18:54:14

标签: javascript jquery

我正在开发一个函数,需要返回左边的单元格和当前单元格上方的单元格的总和。因此,细胞+在细胞上方=细胞内容。

我的代码:

$('#' + 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),但我似乎无法弄清楚或找到一个工作示例(或我自己弄清楚)将单元格置于当前单元格之上

该函数循环遍历整个行以及上面单元格+单元格左侧的每个单元格总和。

2 个答案:

答案 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回调函数

https://jsfiddle.net/Lwc8a89c/2/

答案 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

一个提示: - 使用变量来避免重复的代码。