[JS] Node was not found bei previousSibling



  • Hallo,

    ich hab ein Problem mit folgendem Codestückchen:

    function deleteObject(elX)
    {
        alert(elX.previousSibling.nodeName); // Ausgabe "SELECT"
        if (document.body)
        {
           document.body.removeChild(elX.previousSibling);  // Node nicht gefunden -.-
           document.body.removeChild(elX);
        }
    }
    

    Erklärung:
    Ich habe ein (oder 2. od. 3, usw.) dynamisches Select-Element und dahinter jeweils einen Link der die Aufgabe hat, dass davorstehende ID-lose Objekt und sich selbst zu löschen sobald er geklickt wird.

    Der Aufruf also ganz simple:

    <a href='java\1:void(0);' onclick='deleteObject(this);'><!-- ... -->
    

    Gut, wie in den Kommentaren zu sehen wird mir der Name des Elements noch korrekt ausgegeben, das Löschen klappt allerdings nicht mehr. IE meldet: "Ungültiges Argument" und Firefox sagt: "Node was not found". Beide in Zeile document.body.removeChild(elX.previousSibling);

    Hat irgendwer eine Idee was hier kaputt ist?

    Vielen Dank im Voraus

    VlG



  • Hallo,

    removeChild muss ein direktes Kind als Parameter haben.
    Aber dein Kind wird wohl nicht direkt am body hängen.

    Du brauchst also eher sowas:

    elX.parentNode.removeChild(elX);
    


  • 👍 Danke, das wars

    LG


  • Mod

    document.body.removeChild(elX.previousSibling);
    sieht komisch aus. Warum gehst du davon aus dass elX.previousSibling ein child von body ist?

    Mach doch einfach

    elX.parentNode.removeChild(elX.previousSibling)

    denn elX ist garantiert child seines parents 😉

    PS:
    Sorry habe den obigen Beitrag nicht gesehen - irgendwie hat das reload nicht funktioniert.
    Sry 😕



  • Shade Of Mine schrieb:

    document.body.removeChild(elX.previousSibling);
    sieht komisch aus. Warum gehst du davon aus dass elX.previousSibling ein child von body ist?

    Weil der Teil statisch ist. Allerdings ist es kein direktes Child von body

    Danke euch für die Hinweise. Läuft nun alles so wie es soll 👍

    VlG


Anmelden zum Antworten