2016-11-21 6 views
3

Ich habe eine Tabelle, die eine gewisse Reihe mit dem gleichen Wert in Reihen wie hat -JQuery: Tabellenzeile Show/Hide basierend auf Zeile

<table> 
    <thead> 
     <tr> 
      <th>Players</th> 
      <th>Country</th> 
      <th>ZIP Code</th> 
     </tr> 
    </thead>> 
    <tbody> 
     <tr> 
      <td>Jhon Doe</td> 
      <td>USA</td> 
      <td>53255343</td> 
     </tr> 
     <tr> 
      <td>Jhon Doe</td> 
      <td>USA</td> 
      <td>53255343</td> 
     </tr> 
     <tr> 
      <td>Etinee Gomes</td> 
      <td>Ghana</td> 
      <td>566682</td> 
     </tr> 
    </tbody> 
</table> 

ich erste Reihe dieser Zeilen zeigen müssen, die denselben Wert aufweisen. In diesem Fall müssen die erste und die zweite Zeile, die dieselben Daten haben, nur die erste Zeile anzeigen. Wenn Tabellendaten (<td>) nicht übereinstimmen, dann belassen Sie es. Ist es möglich, Jquery zu verwenden?

+0

Ja, es ist möglich. Sie würden durch jede Schleife wollen, vielleicht mit einem '$ .each()' Anweisung in jQuery und durchsuchen die anderen Zeilen für den Wert jedes zu sehen, ob sie übereinstimmen. Versuchen Sie, selbst Code zu schreiben und kommen Sie hierher zurück, wenn Sie auf ein Problem stoßen. –

+0

Das ist mit jQuery definitiv möglich! Sie müssen nur über jede Ihrer Zeilen zu durchlaufen, um einen Index Aufbau - ich jeden Wert zusammen mit einem Schlüssel empfehlen Hashing - und prüfen, ob dieser Schlüssel bereits in der Indizierung ist. Wenn ja, verstecken Sie Ihre Zeile. –

+0

Danke Michael. Ich habe meinen Beitrag aktualisiert. Können Sie mit jdfidde Beispiel kommentieren bitte .. –

Antwort

2

Sie können eine Schleife durch die Elemente Ihrer tbody und suchen Sie nach einem if/else Bedingung wie folgt aus:

var data = [] 
 
$('tbody tr').each(function() { 
 
    var trdat = $(this).text().trim(); 
 
    if ($.inArray(trdat, data) !== -1) { 
 
    $(this).hide() 
 
    } else { 
 
    data.push(trdat); 
 
    } 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <thead> 
 
    <tr> 
 
     <th>Players</th> 
 
     <th>Country</th> 
 
     <th>ZIP Code</th> 
 
    </tr> 
 
    </thead> 
 
    <tbody> 
 
    <tr> 
 
     <td>Jhon Doe</td> 
 
     <td>USA</td> 
 
     <td>53255343</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Jhon Doe</td> 
 
     <td>USA</td> 
 
     <td>53255343</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Etinee Gomes</td> 
 
     <td>Ghana</td> 
 
     <td>566682</td> 
 
    </tr> 
 
    </tbody> 
 
</table>

+0

Hallo DaniP Danke für Ihre Antwort. Wenn ich will auch prüfen, einige mehr Text als ausblenden betrachten wie - hier verstecken Jhon Doe und betrachten Jhon Doe A auch verstecken, so wie man das? –

+0

@JargoViet ich nicht auf die Idee kommen können Sie mit einem Beispiel auf jsfiddle klären oder codepen – DaniP

Verwandte Themen