steffen: JS input Feld entfernen

Hallo Nachteulen,

da ich es nun endlich geschafft habe, ein input Feld per JS hinzuzufügen, möchte ich auch dieses löschen können.

Nun kommt mir nur leider wieder etwas in die Quere. Das Beispiel aus selfhtml ist ja recht prima klappt auch indirekt, aber wenn ich das auf inputs umschreibe, löscht er zwar das erste problemlos, aber beim nächsten muss ich nun 2 mal auf den link klicken, damit er den input löscht.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
<html><head>  
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">  
<title>Test</title>  
<script type="text/javascript">  
function wegMitEintrag () {  
  var Knoten = document.getElementsByTagName("ul")[0].firstChild;  
  verschwunden = document.getElementsByTagName("ul")[0].removeChild(Knoten);  
}  
</script></head>  
<body>  
<ul>  
 <li><input type="file" name="datei_1"></li>  
 <li><input type="file" name="datei_2"></li>  
 <li><input type="file" name="datei_3"></li></ul>  
 <p><a href="javascript:wegMitEintrag()">L&ouml;sche das erste Element</a></p>  
  
<p><a href="../node.htm#remove_child">zur&uuml;ck</a></p>  
  
</body>  
</html>

Da das Beispiel ja tadellos klappte, versteh ich das ganze nicht.

Zu Hülfe :(

steffen

  1. Hallo,

    Einige Browser sehen Whitespace als eigenen Knoten an (ist auch Standard). Nach dem dem ersten <li> kommt ein Zeilenumbruch, der zuerst gelöscht wird. Daher muss man zwei mal drücken.

    http://de.selfhtml.org/javascript/objekte/node.htm

    Über nodeType kann geprüft werden, um was für einen Knoten es sich handelt.

    Gruß

    1. Lieber josh,

      Du hast völlig Recht. Hier noch ein weiterer Vorschlag, wie der OP das eigentliche Vorhaben erfolgreich umsetzen kann:

      Aufgabe: Lösche das erste <li>-Element in einer Liste (<ul>)!

      Lösung:

      function erstes_li_loeschen(listElement) { // geht auch für <ol>  
          var alle_li_elemente = listElement.getElementsByTagName("li"); // findet alle <li> in meiner Liste  
          var verschwunden = listElement.removeChild(alle_li_elemente[0]);  
        
          return verschwunden;  
      }
      

      Liebe Grüße aus Ellwangen,

      Felix Riesterer.

      --
      ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)