jquery if div id的语句

时间:2014-05-20 17:56:23

标签: javascript jquery html mysql

所以我有一个基于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。一如既往,非常感谢任何帮助。感谢。

1 个答案:

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