2016-03-22 13 views
3

Ich habe eine Liste, wo ich Zeilen hinzufügen mit Hinzufügen Schaltfläche mit Jquery. Jetzt möchte ich auch die dynamisch hinzugefügten Zeilen entfernen, so dass ich eine Löschschaltfläche dynamisch zusammen mit den Zeilen erstellt habe, aber diese Löschschaltfläche funktioniert nicht.Jquery entfernen dynamisch hinzugefügte Zeilen

<div id="quantityTable"> 
    <div class="row frmrw"> 
      <div class="form-group col-md-6"> 
       <label class="col-md-6 control-label" for="name">Quantity:</label> 
       <div class="col-md-6"> 
         <input type="text" class="form-control" placeholder="Quantity" name="quantity" /> 
       </div> 
    </div> 
    <div class="form-group col-md-6"> 
      <div data-role="button" id="addQty" class="btn btn-success">Add Quantity</div>       
    </div> 

die Jquery, die zusammen mit einer Schaltfläche Entfernen

$("#addQty").click(function() { 

       $("#quantityTable").append("<div class=\"row frmrw\"> "+ 
            "<div class=\"form-group col-md-6\"> "+ 
            "<div class=\"col-md-6\">"+ 
            "<input type=\"text\" class=\"form-control\" "+ 
            "placeholder=\"Quantity\" name=\"quantity\" /> </div></div> "+ 
            "<div class=\"form-group col-md-6\">"+ 
            "<div data-role=\"button\" id=\"rmvQty\" class=\"btn btn-success\"> "+ 
            "Remove Quantity</div> </div> </div>"); 
      } 
      ); 

nun eine ähnliche Zeile in der Liste anfügt, wenn ich auf die Schaltfläche Entfernen klicken ich entfernen müssen, dass particular Reihe

$("#rmvQty").on("click", function() { 
       console.log("as"); 
      }); 

Erstens funktioniert die Jquery für entfernen nicht und zweitens wie Ich entferne die Zeile, auf die geklickt wurde.

EDIT: meine Lösung

$("#quantityTable").on("click", function (e) { 
       if(e.target.id == "rmvQty"){ 
        e.target.parentNode.parentNode.remove(); 
       } 
      }); 
+1

Teil des Problems ist, dass Sie doppelte ID-Felder hinzufügen. Ich bin mir ziemlich sicher, dass '$ ('DUPEID') nur die erste ID findet, die es findet, da IDs eindeutig sein sollen. – mix3d

+0

ja das macht Sinn. Ich muss eine andere ID angeben. Was ich tun kann, ist einen Zähler zu behalten und die Zählung an die Id anzuhängen. aber dann, um Jquery zu entfernen, werde ich N Button entfernen und natürlich kann ich nicht so viele jquery Skripte haben. Ich denke, ich muss auf den Parent platzen und die ID analysieren und dementsprechend das Element – user3342812

+0

löschen. Sie sollten sie jedoch nicht mit der ID referenzieren müssen, wenn Ihr Bereich korrekt gehandhabt wird. Solange die Wurzel jeder neuen Zeile auf Klicks von ".btn" hört, kann sie sich selbst entfernen, und Sie müssen sich nie Gedanken darum machen, welche Zeile welche ist. – mix3d

Antwort

0

Das Element existiert nicht beim Laden der Seite, so dass Sie nicht ein Ereignis, um es auf diese Weise binden können.

sollten Sie verwenden:

$(document).on('click', '#rmvQty', function(){ 
    console.log("as"); 
}); 
+0

Ich denke nicht, dass dies ein guter Ansatz ist, sicher, dass es "funktioniert", aber Sie sollten das Dokument nicht auf Klicks warten lassen, es sollte nur für die fraglichen Elemente gekapselt werden. – mix3d

+0

Richtig, das sollte nur veranschaulichen, wie es funktioniert –

Verwandte Themen