Livesuche in Tabellen

bronco_user

Grünschnabel
Hallo Leute,

ich habe eine Tabelle in der ich gerne alle Zeilen ausblenden würde, in der mein Suchstring nicht vorkommt. Dazu habe ich auch ein Codeschnipsel gefunden und diesen soweit es mir möglich ist angepasst. Leider hab ich nicht das Ergebnis bekommen welches ich mir wünsche. Vielleicht habt ihr eine Idee wo mein Denkfehler ist.
Code:
  function livesearch(text)
  {
   var zwischen;   //speichert Inhalt der Zelle
   var result;    //speichert, ob ein Treffer gefunden wurde
   result=0;
   var myTable = document.getElementsByTagName("table")[0];
   for (var i=0; i < myTable.rows.length; i++) {
	
    for(var j=0; j < myTable.rows[i].cells.length; j++) { 
     
	zwischen = myTable.rows[i].cells[j].firstChild.nodeValue;
     
     if (zwischen.search(text) != -1) {result = 1;}
    }
    if(result == 0) {
     myTable.rows[i].style.display = "none";
    }
    if(result == 1) {
      myTable.rows[i].style.display = "table-row";
      result=0;
    }
   }
  }

Ich denke das der Fehler bei dem firstChild.nodeValue liegt.
Es sollte in jeder Zelle nach dem Suchstring Ausdruck gesucht werden und dann wenn er in keiner Zelle vorhanden ist, diese dann ausgeblendet werden. Ich hoffe das ich mich verständlich ausgedrückt habe. Ansonsten bei Unklarheiten kurz posten. Danke:)
 
Nimm doch mal stattdessen:
Code:
myTable.rows[i].cells[j].innerHTML
Ist "search" eine von dir geschriebene Methode?
 
Hallo und danke für deine Antwort.
Die Methode search() ist eine standart Javscript Methode.
Hab diese so auch nach gegoogelt und gefunden. Diese durchsucht Strings nach vorkommen des Textes. Soweit mein Verständnis dazu.
Kann es wohl sein das die Suchergebnisse aus den Zellen davor überschieben werden?
Ich meine Zelle 1 Treffer und Zelle 2 false das dann es zu keiner Ausgabe kommt?:confused:
 
Heureka!! Danke dir! das war es.
Hier nochmal der Code mit den Änderungen vielleicht kann den mal jemand gebrauchen.
Code:
  function livesearch(text)
  {
   var zwischen;   //speichert Inhalt der Zelle
   var result;    //speichert, ob ein Treffer gefunden wurde
   result=0;
   var myTable = document.getElementsByTagName("table")[0];
   for (var i=0; i < myTable.rows.length; i++) {
	
    for(var j=0; j < myTable.rows[i].cells.length; j++) { 
	zwischen = myTable.rows[i].cells[j].innerHTML;
     if (zwischen.search(text) != -1) {result = 1; break;}
    }
    if(result == 0) {
     myTable.rows[i].style.display = "none";
    }
    if(result == 1) {
      myTable.rows[i].style.display = "table-row";
      result=0;
    }
   }
  }
 

Neue Beiträge

Zurück