2017-11-20 1 views
2

Ich möchte wissen, die Anzahl der Male ein Wort in meinem Tisch erscheint (Tables)die Gesamtzahl der Vorkommen eines Wortes in Tables

var numberOccurence = $('tr > td:nth-child(2):contains("'+ word +'")').length; 

Das Problem ist, dass es aussieht nur auf den sichtbaren Teil die Tabelle, das heißt, wenn es 10 Seiten auf DataTables gibt, gibt es mir nur die Anzahl der Vorkommen auf der ersten Seite

Wie geht das?

EDIT Hier ist die Html

<div class="table-row"> 
    <div class="table-responsive"> 
    <table id="fileTable" class="table table-striped table-bordered"> 
     <thead> 
     <tr> 
      <th>Date</th> 
      <th>Localisation</th> 
      <th>User</th> 
      <th>Like</th> 
     </tr> 
     </thead> 
     <tbody> 
     <?php foreach ($orders as $order) { ?> 
     <tr> 
      <td><?= $order['date'] ?></td> 
      <td><?= $order['localisation'] ?></td> 
      <td><?= $order['user'] ?></td> 
      <td><?= $order['like'] ?></td> 
     </tr> 
     <?php } ?> 
     </tbody> 
    </table> 
    </div> 
</div> 
+0

Können Sie ein Beispiel Ihres HTML hinzufügen, so können wir sehen, wie komplex (oder einfach) die Tabelle ist –

+0

Die andere Frage wäre, sind die anderen "versteckten" Teile von die Tabelle tatsächlich in HTML gerendert, aber nur durch das Styling versteckt? – Arran

+0

Versteckte Elemente sollten jedoch mit dieser Methode gefunden werden. [Beweis] (https://jsfiddle.net/6f4go3y7/). –

Antwort

1

Unter der Annahme, dass Sie DataTables Plugin verwenden, können Sie die Daten von Datatable-Suche konnte mit data()

// Column name to search 
var colName = 'columnName'; 
// Column index to search 
var colIndex = 2; 

var term = 'word'; 

// Get reference of DataTables API 
var tbl = $('#myTable').DataTable(); 

// Get data (array of rows) 
var data = tbl.data(); 

// Use filter function to search for term 
var occurence = data.toArray().filter(function(row) { 
    // If data is array of objects 
    return row[colName].indexOf(term) !== -1; 
    // If data is array of strings 
    return row[colIndex].indexOf(term) !== -1; 
}).length; 

Sie können die Dokumentation prüfen über data()

+0

Vielen Dank aber Ich verstehe nicht sehr gut, was entspricht 'colName' und 'colIndex' (Ich habe die HTML meiner Tabelle auf meinem ersten Beitrag hinzugefügt) – Rocstar

+0

Wie ich aus Ihrer Frage sehen können, suchen Sie die zweite Spalte (nth-child (2)) . Also, Sie können colIndex = 2 – kapantzak

+0

Vielen Dank, es funktioniert, aber ich verstehe nicht, was ich in colName setzen muss. – Rocstar

1

Sie sind in der Nähe , Aber die $ API-Methode zusammen mit dem :contains Wähler statt:

var count = table.$('td:contains("'+ term +'")').length; 

Demo ->http://jsfiddle.net/mLqreyfg/

$(): eine jQuery-Auswahl Aktion auf der vollen Tabelle Perform

+0

Danke, es funktioniert – Rocstar

Verwandte Themen