Thomas Michel: .firstChild ersetzen durch aktuller knoten

Hallo zusammen

Ich generiere dynamisch formularfelder, was auch funktioniert ;) nun möchte ich dass der user den akutellen knoten entfernen kann. Den knoten entfernen ist kein problem nur nöchte ich nicht den ersten knoten entfernen sonder den aktuellen. Wie kann ich darauf zugreiffen?

mfG

Thomas Michel

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>Test</title>
<style type="text/css">
<!--
-->
</style>
<script type="text/javascript">
<!--
var datumcounter=-1;
function Hinzufuegen()
{
datumcounter++;
zahlausgabe=datumcounter+1;
var menudatum="<div class="datumdiv_"+zahlausgabe+"">"+zahlausgabe+"<select name="datum[tag]["+datumcounter+"]" size="1"  onFocus ="deaktivieren("+datumcounter+")">";
menudatum=menudatum+"<option value="none">---</option>";
 for(a=1;a<=31;a++)
 {
 menudatum=menudatum+"<option>"+a+"</option>";
 }
menudatum=menudatum+"</select>";
menudatum=menudatum+"<select name="datum[monat]["+datumcounter+"]" size="1"><option value="none">---Bitte wählen---</option><option value="1">Januar</option><option value="2">Februar</option><option value="3">März</option><option value="4">April</option><option value="5">Mai</option><option value="6">Juni</option><option value="7">Juli</option><option value="8">August</option><option value="9">September</option><option value="10">Oktober</option><option value="11">November</option><option value="12">Dezember</option></select><input type="text" name="datum[jahr]["+datumcounter+"]" size="4"> <a href="javascript:deaktivieren("+datumcounter+")">loeschen</a></div>";
document.getElementById("User").innerHTML =document.getElementById("User").innerHTML+menudatum;
}

function deaktivieren(id_deaktivieren)
{
 var Knoten=document.getElementById("User").firstChild;
 document.getElementById("User").removeChild(Knoten);
}
//-->
</script>
</head><body>

<form name="test" action="" method="post">

<a href="javascript:Hinzufuegen()">hinzufügen</a>
<div id="User" style="background-color:#FFFFC0; padding:10px">
</div>
<input type="submit">
</form>

</body></html>

  1. Sup!

    Gibt's das evtl. auch live und in Farbe bzw. gibt es irgendwo das zu sehen, was dieser Quellcode dann im Endeffekt generiert, woher kommt das Element namens "User", und wo im Quellcode liegt das Problem?

    Gruesse,

    Bio

    --
    Ich bin ein Mobber - mein Posting tut mir leid! EHRLICH!!!
    1. Hallo

      ich möchte das nicht der erste node gelöscht wird sondern der aktuelle ;)

      ich habe die daten hochgeladen du findest sie unter:

      http://www.michelnet.ch/ipa/selfhtml.htm

      mfG

      Thomas Michel

      1. Sup!

        Vielleicht kannst Du in der Javascript-Funktion, die ausgelöst wird, auch einfach this.remove(); schreiben? Das ist natürlich Pseudocode... aber oft hat man mit this.xyz automatisch Zugriff auf das "aktuelle" Element.

        Gruesse,

        Bio

        --
        Ich bin ein Mobber - mein Posting tut mir leid! EHRLICH!!!
  2. Hallo,

    Ich generiere dynamisch formularfelder, was auch funktioniert ;) nun möchte ich dass der user den akutellen knoten entfernen kann. Den knoten entfernen ist kein problem nur nöchte ich nicht den ersten knoten entfernen sonder den aktuellen. Wie kann ich darauf zugreiffen?

    Ich habe Dein Script mal etwas angepasst. Beim Erzeugen der DIVs wird jeweils eine ID vergeben ("neu"+datumcounter) und beim Entfernen wird entsprechend ueber diese IDs referenziert:

    <script type="text/javascript">
    <!--
    var datumcounter=-1;
    function Hinzufuegen()
    {
    datumcounter++;
    zahlausgabe=datumcounter+1;
    var menudatum="<div id="neu"+datumcounter+"" class="datumdiv_"+zahlausgabe+"">"+zahlausgabe+"<select name="datum[tag]["+datumcounter+"]" size="1"  onFocus ="deaktivieren("+datumcounter+")">";
    menudatum=menudatum+"<option value="none">---</option>";
     for(a=1;a<=31;a++)
     {
     menudatum=menudatum+"<option>"+a+"</option>";
     }
    menudatum=menudatum+"</select>";
    menudatum=menudatum+"<select name="datum[monat]["+datumcounter+"]" size="1"><option value="none">---Bitte wählen---</option><option value="1">Januar</option><option value="2">Februar</option><option value="3">März</option><option value="4">April</option><option value="5">Mai</option><option value="6">Juni</option><option value="7">Juli</option><option value="8">August</option><option value="9">September</option><option value="10">Oktober</option><option value="11">November</option><option value="12">Dezember</option></select><input type="text" name="datum[jahr]["+datumcounter+"]" size="4"> <a href="javascript:deaktivieren("+datumcounter+")">loeschen</a></div>";
    document.getElementById("User").innerHTML =document.getElementById("User").innerHTML+menudatum;
    }

    function deaktivieren(id_deaktivieren)
    {
     var Knoten=document.getElementById("neu"+id_deaktivieren);
     document.getElementById("User").removeChild(Knoten);
    }
    //-->
    </script>

    MfG, Thomas

    1. [Nachtrag:]

      Ich habe Dein Script mal etwas angepasst.

      Die fehlenden "" bei schließenden Tags habe ich nicht ergaenzt, z. B.: "</select>".

      MfG, Thomas