为列jquery添加先前行的值

时间:2015-08-07 20:50:04

标签: jquery

我正在尝试使用jquery在我单击的列中添加前一行的值。 目前我有以下代码:

$( document ).ready(function() {
$('td').click(function()
{
    var col = $(this).parent().children().index($(this));
    var row = $(this).parent().parent().children().index($(this).parent());
    console.log('Row: ' + row + ', Column: ' + col);
    var val1=0;
    var val2=0;
    var t = document.getElementById('hours');
    for (i = 1; i < row; i++) 
    { 
        var val1=$(t.rows[i].cells[col]).text();
        console.log('Row: ' + i + ', Column: ' + col);
        console.log($('#hours tr:eq('+i+') td:eq('+col+')').text);
        val2 += Number(val1);
    }
});

});

我已经找到了合适的专栏,但在提取数据时遇到了问题。 表格ID为:小时

http://jsfiddle.net/BigGrecian/0cc2k2zg/

2 个答案:

答案 0 :(得分:0)

替换

for (i = 1; i < row; i++) 

for( i = 0 ; i<row ; i++)

因为否则会忽略第一行

我还建议使用循环代码

var val1 = 0
try {
   var txtval1 = t.rows[i].cells[col].textContent;
   val1 = parseFloat(txtval1);
   if (isNaN(val1)) val1 = 0.0;
   // or use parseInt and remove isNaN test
   val2 += val1;
} catch(e){ console.log("Row:" + i +', Col: '+col+'can not parse: '+ txtval1); } 

答案 1 :(得分:0)

$(document).ready(function () {
$('td').click(function () {
    var col = $(this).parent().children().index($(this));
    var row = $(this).parent().parent().children().index($(this).parent());
    //console.log('Row: ' + row + ', Column: ' + col);
    var val1 = 0;
    var val2 = 0;
    var t = document.getElementById('hours');
    for (i = 1; i < row; i++) {
        try {
            var txtval1 = t.rows[i].cells[col].textContent;
            val1 = parseFloat(txtval1);
            if (isNaN(val1)) val1 = 0.0;
            // or use parseInt and remove isNaN test
            val2 += val1;
        } catch (e) {
         //   console.log("Row:" + i + ', Col: ' + col + 'can not parse: ' + txtval1);
        }
        var val1 = $(t.rows[i].cells[col]).text();
        //console.log('Row: ' + i + ', Column: ' + col);
       // console.log($('#hours tr:eq(' + i + ') td:eq(' + col + ')').text);
        val2 += Number(val1);
        console.log (val2);
    }
});

});

http://jsfiddle.net/0cc2k2zg/11/

作品。

不需要第0行,因为其中包含标题 - 所以只需要第1行开始。