ingobar: Alle Kindelemente löschen

Hallo,

ich versuche nun schon ein Weile folgendes:

var Ausgabebereich = document.getElementById("faecher_td");   Ausgabebereich.removeChild(Ausgabebereich.firstChild);

soll den Tabelleneintrag löschen, der so aussieht:

<td id="faecher_td">
 <select id="curFach_select">
  <option value="5">Biologie</option>
  <option value="4">Chemie</option>
  <option value="1">Mathematik</option>
  <option value="2">Physik</option>
 </select>
</td>

Gelöscht werden soll das ganze select, da es durch ein anderes select, dessen Daten ich mir aus der DB holen, ersetzt wird.

Leider passiert überhaupt nichts. Keine Änderung in der Anzeige. Rein gar nichts. Was stimmt denn nicht an obigen beiden Zeilen? Wie müsste es korrekt lauten?

  1. Hallo ingobar,

    firstChild ist mit Vorsicht zu genießen, da das erste Kind in einigen Browsern auch der Zeilenumbruch zwischen td und select sein kann. Das select hat doch eine ID, greife einfach mit getElementById drauf zu:

    Ausgabebereich.removeChild(document.getElementById("curFach_select"));

    Gruß, Jürgen

  2. Hallo,

    Warum das passiert hat Jürgen ja schon gesagt. Ich habe mir zum Ermitteln des ersten "richtigen" Kindselementes eine Funktion gebaut:

    function getFirstRealChild(object) {  
     for(var i=0; i < object.childNodes.length; ++i) {  
      if(object.childNodes[i].nodeType == 1) return object.childNodes[i];  
     }  
    }
    

    Das kann man dann so benutzen:

    var Ausgabebereich = document.getElementById("faecher_td");  
    Ausgabebereich.removeChild(getFirstRealChild(Ausgabebereich));
    

    du kannst natürlich (wenn das select zum beispiel keine extra ID hat) es so machen:

    Ausgabebereich.removeChild(Ausgabebereich.getElementsByTagName("select")[0]);

    Grüße
    Jeena Paradies

    --
    Social Webapps wer nutzt sie? | Jlog | Gourmetica Mentiri
    1. Vielen Dank euch beiden. Jetzt geht es tadellos.