我正在使用以下javascript函数添加表中列的值:
function sumOfColumns(tableID, columnIndex, hasHeader) {
var tot = 0;
$("#" + tableID + " tr" + (hasHeader ? ":gt(0)" : ""))
.children("td:nth-child(" + columnIndex + ")")
.each(function() {
tot += $(this).html();
});
return tot;
}
我想修改它,这样不仅可以添加单元格中的数字,还可以包含单元格中文本框的值。单元格可以是数字,也可以是带有数字的文本框。
以下单元格应该加起来为2115:
<table>
<tr><td>100</td></tr>
<tr><td><input type="text" value="5" /></td></tr>
<tr><td>10</td></tr>
<tr><td><input type="text" value="2000" /></td></tr>
</table>
我怎样才能最有效地完成这项工作? 感谢您的投入!
答案 0 :(得分:2)
你可以这样做:
function sumOfColumns(tableID, columnIndex, hasHeader) {
var tot = 0;
$("#" + tableID + " tr" + (hasHeader ? ":gt(0)" : ""))
.children("td:nth-child(" + columnIndex + ")")
.each(function() {
tot += parseFloat($(this).text() || $('input:text', this).val());
});
return tot;
}
我替换了parseFloat(),因为你没有包含你的fNum(text,bool)函数。