2017-12-17 1 views
0

Ich muss eine Einkaufsliste erstellen, wo ich Listen hinzufügen und löschen kann. Auf der rechten Seite befindet sich die aktuell geöffnete Liste mit der Listenüberschrift. Beim Löschen einer Liste sollte die Überschrift verschwinden, aber nicht, weder mit leer(), noch entfernen() oder Text ('').jQuery Text von h1 entfernen

ich bearbeitet gerade die Post, so dass Sie den gesamten HTML-Code sehen

HTML:   
<div class="container"> 
     <div class="row"> 
      <div class="col-sm-4"> 
       <div id="shoppinglist"> 
        <div class="header left"> 
         <h2>Listen</h2> 
         <i class="glyphicon glyphicon-plus newList" ></i> 
        </div> 
        <ul class="list lists"> 
         <!-- --> 
        </ul> 
       </div> 
      </div> 
      <div class="col-sm-8"> 
       <div class="header right"> 
        <i class="glyphicon glyphicon-search"></i> 
        <i class="glyphicon glyphicon-menu-hamburger"></i> 
        <img src="img/profile.png" alt="profilbild"> 
       </div> 
       <div id="listbody"> 
        <div class="listheader"> 
         <!--<h1>List 1</h1>--> 
        </div> 
        <div id="listitems"> 
         <div class="items_container"> 
          <!-- --> 
         </div> 
        </div> 
       </div> 
      </div> 
     </div> 
     <div class="row"> 
      <div class="col-sm-4"> 
       <div id="categorylist"> 
        <div class="header"> 
         <h2>Kategorien</h2> 
        </div> 
        <ul class="list categories"> 
         <!-- --> 
        </ul> 
       </div> 
      </div> 
      <div class="col-sm-8"> 
       <div class="header"> 
        <input placeholder="Was willst du Einkaufen?" type="text" /> 
       </div> 
       <div id="categoryitems"> 
        <div class="items_container"> 
         <!-- --> 
        </div> 
       </div> 
      </div> 
     </div> 
     <div id="producthover_container"> 
      <div id='producthover'> 
       <div id='producthover_icon'> 
        <i class='glyphicon glyphicon-plus'></i> 
       </div> 
       <div id='producthover_detail'> 
        <span>Details <br> hinzufügen</span> 
       </div> 
      </div> 
     </div> 
    </div> 


list.js: 
printHeader(){ 
    $(".listheader").empty(); 
    $(".listheader").append("<h1 class='h1header'>" + this.name + "</h1>"); 
} 


shoppinglist.js: 
$(".lists").on("click","i",(e) =>{ 
    let r = confirm("Delete?"); 
    if(r) { 
     $(".h1header").remove(); 
     $(e.target).parent().remove(); 
    } 
}); 
+0

Keines der Elemente einen untergeordneten Knoten angegeben Sie haben eine Klasse 'h1header' Namen zeigen. Ich nehme an, die 'i' und' .list' Elemente sind woanders? –

+0

Gut für die Klasse mit 'h1header' Ich denke,' printheader' in 'list.js' muss ausgeführt werden. Aber ja, wo sind die Listengegenstände? –

+0

Sorry, jetzt können Sie alle HTML-Elemente sehen –

Antwort

0

Sie es aus dem übergeordneten Knoten entfernen müssen. wie folgt aus:

var child = $(".h1header"); 
$(".listheader").removeChild(child); 

oder Sie eine Funktion erstellen, die dies tut, wenn

+0

Das bringt mir den Fehler: Uncaught TypeError: $ (...). RemoveChild ist keine Funktion bei HTMLElement. $. On (shoppinglist.js: 78) bei HTMLUListElement.dispatch (jquery.min.js: 3) bei HTMLUListElement.q.handle (jquery.min.js: 3) –