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