2017-07-15 97 views
2

我有一個表的日期。我想遍歷表格並輸出沒有重複的數據。我怎樣才能做到這一點?循環遍歷表並刪除與jquery重複

結果應該是:

​​

var table = document.getElementsByClassName('date'); 
 
for (i=0; i < table.length; i++){ 
 
    console.log(table[i].innerHTML); 
 
} 
 

 

 
<table id="myTable" class="table"> 
 
    <tr> 
 
     <td class="date">2017</td> 
 
    </tr> 
 
    \t <tr> 
 
    \t <td class="date">2017</td> 
 
    </tr> 
 
    \t <tr> 
 
    \t <td class="date">2018</td> 
 
    </tr> 
 
    \t <tr> 
 
    \t <td class="date">2018</td> 
 
    </tr> 
 
    <tr> 
 
    \t <td class="date">2018</td> 
 
    </tr> 
 
    \t <tr> 
 
    \t <td class="date">2019</td> 
 
    </tr> 
 
    <tr> 
 
    \t <td class="date">2019</td> 
 
    </tr> 
 
    <tr> 
 
    \t <td class="date">2019</td> 
 
    </tr> 
 
</table>

回答

1

的解決方案是通過表迭代並驗證是否已經找到。

爲此,您可以使用javascript 字典,稱爲var seen={}。如果已經找到一年,則必須設置seen[year]=true。否則,您必須通過將display屬性設置爲none來隱藏該行。

var seen = {}; 
 
table = document.getElementById("myTable"); 
 
tr = table.getElementsByTagName("tr"); 
 
for (i = 0; i < tr.length; i++) { 
 
    td = tr[i].getElementsByTagName("td")[0]; 
 
    if (seen[td.textContent]) { 
 
     tr[i].style.display = "none"; 
 
    } else { 
 
     seen[td.textContent]=true; 
 
    } 
 
}
<table id="myTable" class="table"> 
 
    
 
\t <tr> 
 
\t \t <td class="date">2017</td> 
 
\t </tr> 
 

 
\t <tr> 
 
\t \t <td class="date">2017</td> 
 
\t </tr> 
 

 
\t <tr> 
 
\t \t <td class="date">2018</td> 
 
\t </tr> 
 

 
\t <tr> 
 
\t \t <td class="date">2018</td> 
 
\t </tr> 
 
\t <tr> 
 
\t \t <td class="date">2018</td> 
 
\t </tr> 
 

 
\t <tr> 
 
\t \t <td class="date">2019</td> 
 
\t </tr> 
 
\t <tr> 
 
\t \t <td class="date">2019</td> 
 
\t </tr> 
 
\t <tr> 
 
\t \t <td class="date">2019</td> 
 
\t </tr> 
 
\t 
 
</table>

+0

此代碼的工作非常適合我的需求 – Celal

+0

@Celal,不要忘記,以幫助其他人接受的答案。 –

2

要通過該表並輸出的數據循環沒有重複,則可以使用一個數組來保存和驗證數據。

var table = document.getElementsByClassName('date'); 
var data = []; 
        for (i=0; i < table.length; i++){ 
       if (data.indexOf(table[i].innerHTML) > -1) { 
        console.log(table[i].innerHTML); 
       } else { 
        data.push(table[i].innerHTML); 
       } 
     }