如果某个特定列包含重复的条目,如何清除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)中抛出错误;索引无效
答案 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>