var tdusername = new Array();//用來存放姓名,並且最終冒泡排序的數組;
var tdusername2 = new Array();//用來存放列表中固定順序的姓名數組;
var buffer = new StringBuffer();
function autoRowSpan(tb,row,col)
{
var lastValue="";
var lastUsername="";
var value="";
var username="";
var pos=1;
for(var i=row;i<tb.rows.length;i++){
//排除第二行
if(i==1){
continue;
}else{
value = tb.rows[i].cells[col].innerText; // 確定第i行第一列的數據---課程名稱
username = tb.rows[i].cells[col+2].innerText;//確定第i行第三列的數據----學生姓名
//usernameAndIndex = buffer.append(username).append(i.toString()).toString();//將姓名和它對應的行數組合稱爲字符串放入數組中
tdusername.push(username);
tdusername2.push(username);
if(lastValue == value){
tb.rows[i].deleteCell(col); //刪除指定的單元格
tb.rows[i-pos].cells[col].rowSpan = tb.rows[i-pos].cells[col].rowSpan+1; //合併單元格
//tb.deleteRow(i);//刪除指定的行
pos++;
}else{
lastValue = value;
pos=1;
}
}
}
//遍歷數組
var nary = tdusername.sort();//冒泡排序的最直接方法
var rename = "";
var index1 = "";
var index2 = "";
var temp =new Array();//中間數組專門用來存放兩個相同姓名出現的索引位置
alert(nary);
alert(tdusername);
alert(tdusername2);
for(var j=0;j<tdusername.length;j++){
if (nary[j]==nary[j+1]){//發現重複值,然後根據索引確定對應得課程是否重複,如果重複,則刪除這行
rename = nary[j];//重複的內容
alert(nary[j]);
for(var m=0;m<tdusername2.length;m++){
if(rename==tdusername2[m]){//數組中第一次出現重複值得到其索引位置
temp.push(m);
}
for(var n=1;n<temp.length;n++){//循環臨時數組,拿第一條和接下來每條比較,如果相同,刪除table中的一行數據
var firstcourse = tb.rows[temp[0]].cells[0].innerText;//第一條課程數據
var othercourse = tb.rows[temp[n]].cells[0].innerText;//其他課程數據
alert(firstcourse);
alert(othercourse);
if(firstcourse==othercourse){
tb.deleteRow(temp[n]);
}
}
}
}
}
}
這是本次操作後的列表:根據課程和姓名同時相等去重
這是操作前的列表:
注:若有需要並且看不懂的可以給我留言!