cshtml - 访问表元素和操作表行

时间:2014-06-02 13:16:31

标签: javascript html

如果某个特定列包含重复的条目,如何清除HTML表的记录?例如,如果表中有2列 - 名称和年龄,如果2个人的年龄相同,则完全删除第二行。

 function DeleteDuplicate() {
        // FIRSTLY FIND THE ROWS TO DELETE
        var data = document.getElementById("CommitTable");
        var unique_data_Array = [];
        for (var i = 0; i < data.rows.length; i++) {
            unique_data_Array.push(data.rows[i])
        }
        debugger
        var g = 0; m = 0; u = 0;4
        for (var j = 0; j < unique_data_Array.length; j++)
         {
             if (unique_data_Array[j][0] =  "*group*")
             {
                g++;
                if (g > 1) 
                {debugger
                    //                    delete data.rows(j);
                    data.deleteRow(j);   
                }
            }
            else if (unique_data_Array[j][0] = "*member*") 
            {
                m++;
                if (m > 1)
                 {
                debugger
                    //                    delete data.rows(j);
                data.deleteRow(j);

                }
            }
        }
    }
                    window.onload = DeleteDuplicate;    

这是我在javascript中的代码,对于包含group的所有行或第一列中的成员,我想只保留一行并删除其他行。

它在语句data.deleteRow(j)中抛出错误;索引无效

1 个答案:

答案 0 :(得分:0)

以下代码确实需要您:

<html>
<head>
<script>

function data_collect(){

    var data= document.getElementById("my_table");
    var coll_Array=[];
    var int_Array=[];

    for(var i=0;i<data.rows.length;i++){
       for(var j=0;j<data.rows[i].cells.length;j++){
          int_Array.push(data.rows[i].cells[j].innerHTML);
       }
       coll_Array.push(int_Array);
       int_Array=[];
    }
    return coll_Array;   
}  

function delRow(){
    var table_row_data=data_collect();
    var unique_Array=table_row_data[0];
    var index_Array=[];
    for (var i=1;i<table_row_data.length;i++){
        var criteria=table_row_data[i].every(
              function(x){return unique_Array.indexOf(x)==-1;});
        if (criteria==true){
            unique_Array.concat(table_row_data[i]);
        }
        else{
        index_Array.push(i);
        }
    }
    for (var j=0;j<index_Array.length;j++){
  document.getElementById("my_table").deleteRow(index_Array[j]);
    }
}



</script>
</head>


<body>
<table id="my_table">
<tr>
<td>Ram</td>
<td>25</td>
</tr>
<tr>
<td>Chris</td>
<td>26</td>
</tr>
<td>Kevin</td>
<td>25</td>
</tr>
</table>
<button onclick="delRow()">Click me</button>
</body>


</html>