所以我有一个基于mysql查询填充的HTML表。它包含在:
中<div id="punchclock" class="timecard">
我有以下jQuery脚本来计算输入到HTML表格中的时间总数。然而,它正在重复&#34; Total:&#34;标题中的脚本行(一个单独的div)和我想要的表。有没有办法确保代码只输出到所需的div?
$('table').each(function(){
var tr = {};
$(this).find('tr').each(function(){
var key = $(this).find('td.job_code').text();
var val1 = toSeconds($(this).find('td.hrs').text());
//var val = +$(this).find('td.hrs').text().split(':')[0];
if(tr[key]){
tr[key]+=val1;
}else{
tr[key]=val1;
}
});
$(this).append(function(){
var tfoot = $('<tfoot/>', {
html: addRows(tr)
});
return tfoot;
});
});
我认为问题在于tfoot return语句,因为它将它返回到标题div和我的表div。一如既往,非常感谢任何帮助。感谢。
答案 0 :(得分:2)
仅选择已定义的div中的表格:
$('#punchclock table').each....
您当前的代码将针对页面上的每个表运行,听起来您有多个表。选择#punchclock table
,它只会使用#punchclock
中的表格。
如果你只想为一个表运行这个,那么最好给那个表赋予像<table id="schedule">
这样的id,然后摆脱你的each
循环,并直接选择表格$('table#schedule')
。
此外,这个块看起来很可疑:
$(this).append(function(){
var tfoot = $('<tfoot/>', {
html: addRows(tr)
});
return tfoot;
});
我不知道addRows
做了什么,但看起来没必要。试试这个:
$(this).append($('<tfoot/>').append(tr));