【问题标题】:Delete duplicate cells of a one column :html删除一列的重复单元格:html
【发布时间】:2014-10-14 10:47:29
【问题描述】:

我要按照这个做同样的事情

<table id="test" border="1">
    <tr>
        <td>test1</td>
        <td>test2</td>
        <td>test3</td>
    </tr>
      <tr>
          <td>test4</td>
          <td>test2</td>
          <td>test5</td>
    </tr>
    <tr>
        <td>test6</td>
        <td>test2</td>
        <td>test9</td>
    </tr>
          <tr>
              <td>test6</td>
              <td>test8</td>
              <td>test8</td>
    </tr>
</table>

LINK of Fiddle 我可以从表中的所有列中删除重复项,但我只想从第一列中删除重复的单元格值。

原始输出

从总表中删除重复项,输出为

我想要这个

【问题讨论】:

    标签: javascript html html-table


    【解决方案1】:

    脚本

    var seen = {};
    $('#test td:first-child').each(function() {
        // Encode column and content information.
        var key = $(this).text();
        if (seen[key]) {
            $(this).text('');
        }
        else {
            seen[key] = true;
        }
    });
    

    Fiddle Demo

    说明:

    $('#test td:first-child') 这有助于只选择表格的第一行

    【讨论】:

    • $(this).index() 不是必需的。
    • @dfsq 是已编辑,我只是​​复制了 SO 用户代码并实际进行了所需的更改
    • @dfsq 我的另一个查询是使用第一个孩子还是this.index==0
    • 您完全删除了密钥。应该是var key = $(this).text();
    【解决方案2】:

    使用此代码可以正常工作。

    var seen = {};
    $('#test td').each(function() {
        // Encode column and content information.
        var key = $(this).index() +  $(this).text();
        if (seen[key] && $(this).index()==0) {
            $(this).text('');
        }
        else {
            seen[key] = true;
        }
    });
    

    Fiddle Demo

    【讨论】:

    • 但这对于较大的桌子来说可能是个问题,不确定,如果你能清除我的疑问,那就太好了
    • $(this).index() 将始终返回 0 第一列。所以,也只是添加了那个条件。
    • 不,我知道我在问哪种方法更好 2
    • 刚刚确认第一个孩子更好:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-31
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多