javascript - 删除列中的重复值

标签 javascript jquery html datatables

我有以下 HTML 表格:

Date          Desc
2018-10-01    Description 1
2018-10-01    Description 2
2018-10-01    Description 3
2018-10-01    Description 4
2018-10-02    Description 1
2018-10-02    Description 2
2018-10-02    Description 3

我想要的是这样的:

Date          Desc
2018-10-01    Description 1
              Description 2
              Description 3
              Description 4
2018-10-02    Description 1
              Description 2
              Description 3

我试过的是这样的:

var seen = {};

$('#TableId tbody tr').each(function () {
    var txt = $("td:first-child", $(this)).text();

    if (seen[txt]) $(this).text("");
    else seen[txt] = true;
});

但是有了这个我得到了以下输出:

Date         Desc
2018-10-01   Description 1
2018-10-02   Description 1

编辑

这是 Codepen

更新

根据 Adam 的回答,现在工作正常,但问题是在我的应用程序中更改了 Desc 列的排序顺序,这是我的真实数据的示例 data table

我做错了什么?我该如何解决?

最佳答案

添加 fnDrawCallback 应该可以解决您的排序问题:

$('#TableId').DataTable({
  "fnDrawCallback": updateTable
});

function updateTable(){
  var x = '';
  $('#TableId tbody tr').each(function () {
    var txt = $("td:first-child", $(this)).text();
    if(txt == x) {
      $("td:first-child", $(this)).css('visibility', 'hidden');        
    }
    else {
      $("td:first-child", $(this)).css('visibility', 'visible');
      x = txt;
    }
  });
}

代码笔:https://codepen.io/anon/pen/XxaBby

关于javascript - 删除列中的重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52787737/

相关文章:

html - 如何在两个列项之间留出空间?

javascript - 如何在c3js动态图表上实现平滑(水平)过渡

javascript - 使用正则表达式链接单词

javascript - 获取两个 Date 对象之间的持续时间(以小时和分钟为单位) - JavaScript

jQuery 无法检索占位符属性值?

Javascript - 在函数中将返回设置为 true

javascript - 使用 Zurb Foundation Reveal 插件在页面加载时打开叠加层

javascript - 如何将json文件加载到数据表中

jQuery:如何使用从 0 以外的索引开始的每个

javascript - 使用 d3 将 Bootstrap 工具提示绑定(bind)到动态创建的 SVG 元素