Alexander R: (DOM/AJAX/PROTOTYPE) Alle Zeilen einer Tabelle entfernen

Beitrag lesen

Hallo zusammen,

ich verzweifel bereits schon an diesem Problem. Zur Erläuterung noch: Ich verwende prototype (bzw. AJAX-Requests) um meine Tabelle mit Ergebnissen zu befüllen. Nun klappt das Befüllen ganz gut und ich möchte natürlich vor jedem Refresh wieder alle Zeilen löschen.

Meine Tabelle sieht folgendermaßen aus:

~~~html

<table id="searchResults">
  <thead>
    <tr>
      <th>Datum</th>
      <th>Stellenname</th>
      <th>Unternehmen</th>
      <th>Standort(e)</th>
    </tr>
  </thead>
  <tbody id="searchResultsBody"></tbody>
</table>

  
Das Befüllen geschieht mit Hilfe folgender JS-Funktion:  
  
~~~javascript
  
var row = document.createElement('tr');  
  
// create cells  
var col1 = document.createElement('td'); col1.innerHTML = item['date']; row.appendChild(col1);  
var col2 = document.createElement('td'); col2.innerHTML = item['title']; row.appendChild(col2);  
var col3 = document.createElement('td'); col3.innerHTML = item['company']; row.appendChild(col3);  
var col4 = document.createElement('td'); col4.innerHTML = item['cities']; row.appendChild(col4);  
  
// insert into dom  
$('searchResultsBody').appendChild(row);  

Wie bereits gesagt, das Befüllen klappt tadellos.

Will ich nun aber alle Zeilen mit folgender JS-Funktion entfernen:

  
var numElements = $('searchResultsBody').childNodes.length;  
  
  if (numElements) {  
    for (i = 0; i < numElements; i++ ) {  
      var child = $('searchResultsBody').childNodes[i];  
      if (child.nodeName == 'TR') {  
 $('searchResultsBody').removeChild(child);  
      }  
    }  
  }  

Er entfernt seltsamerweise nur ein paar Elemente (kann ich nicht nachvollzuziehen nach welchem Schema) und mein Firebug/Firefox spuckt dann folgenden Fehler aus:

child has no properties
dropSearchResults()job_search.js (line 75)
onclick(click clientX=0, clientY=0)search (line 1)
[Break on this error] if (child.nodeName == 'TR') {

Leider arbeite ich mich derzeit in die JS/AJAX-Thematik ein und deshalb weiß ich einfach nicht weiter - alle Varianten, die ich ausprobiert habe sind gescheitert :(

Vielen Dank für Eure Hilfe!
Alex