javascript - 动态重组 HTML 表格

标签 javascript jquery html

我有两个 HTML 表格需要合并在一起,然后将结果输出为一个单独的表格。 BeforeTables

函数 objectify() 找到每个预合并表并将它们的数据放入以下格式的对象中:object structure

从这一点开始,事情就变得棘手了。我的 standardise() 函数循环遍历每个对象,将 header 和日期值放入数组中,然后调用 removeDuplicates() 删除重复项(不言自明)。

但是,当涉及到将每个对象合并在一起并将数据输出到表中时,我想不出该怎么做。到目前为止,我只能弄清楚如何输出表头,如下所示: aftertab

Here是我的代码笔的链接。任何帮助将不胜感激。

最佳答案

我删除了一些你的代码,现在似乎可以工作了。 http://jsfiddle.net/dt1dmmk2/

function removeDuplicates(array) {
  var cleanValues = [];
  $.each(array, function(i, el) {
    if ($.inArray(el, cleanValues) === -1) cleanValues.push(el);
  });
  return cleanValues;
}
var titles=[];
var totRow=0
  $('.before table').each(function() {
    var rowNumber=$('tr',this).length-1;
    if (totRow<rowNumber)
      totRow=rowNumber;

    var firstCol;
    var secondCol;
    $('tr',this).each(function(index) {
      if (index == 0) {
        firstCol=$('td:first',this).text();
        secondCol=$('td:last',this).text();
        titles.push(firstCol,secondCol)
      } else {
        $('td:first',this).attr('data-col',firstCol);
        $('td:last',this).attr('data-col',secondCol);
      }
    });
  })
  titles=removeDuplicates(titles);
  $('.after table').append('<tr>');
  for (i in titles) {
    $('.after table tr:last').append('<th>' + titles[i] + '</th>');
  }
    for (var b=0;b<totRow;b++) {
      $('.after table').append('<tr />')
      for (i in titles) {
            var textToFill=$('.before td[data-col="'+titles[i]+'"]:first').text();
            $('.after table tr:last').append('<td>'+textToFill+ '</td>');
            $('.before td[data-col="'+titles[i]+'"]:first').removeAttr('data-col')
      }
    }
    $('td[data-col]').removeAttr('data-col'); // just to clean

当然,TR 已经在.before 表 中排序,这样您就不需要重新排列新的。

关于javascript - 动态重组 HTML 表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34199682/

相关文章:

javascript - formatDate JavaScript 函数仅适用于 Chrome

javascript - 如何在窗口调整大小时更新粘性菜单的 CSS 定位

javascript - 克隆并恢复 "tooltiped"元素

javascript - 使用 ngTouch 定义触摸事件区域

css - 如何在 li 元素的水平组中显示列表?

javascript - 在下拉菜单中设置默认值

javascript - 使用 URL 在调用网页时自动按下 "accept"按钮(javascript)

javascript - 当一个文本 div 更改时,使其他文本 div 更改大小

javascript - jQuery timepicker 不想与 datepicker 插件一起显示

css - div inside div - 宽度问题