我正在尝试使用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为:小时
答案 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行开始。