2016-06-19 6 views
-2

Ich versuche, einen Kommentar vom Benutzer zu löschen und habe Probleme herauszufinden, warum meine CRUD nicht funktioniert. Ich bin fast sicher, dass $ (this) .parent(). Data ('id') ist, weil meine console.log ("ID", commentId) ID undefined zurückgibt.Löschen funktioniert nicht in grundlegenden CRUD-Anwendung

  // Delete Comment From a Meme 
      $('.deletebutton').on('click', function(element) { 
       event.preventDefault(); 
       var commentId = $(this).parent().data('id'); ////id needs to point to id of comment 
       console.log("ID", commentId) 
       window.glob = $(this); 
       $(this).parent().remove(); 
       doYouLikeMeme.deletePost(commentId); 
      }); 

     deletePost: function(commentId) { 
      var DeletePost = doYouLikeMeme.url + "/" + commentId; 
      $.ajax({ 
       url: DeletePost, 
       method: "DELETE", 
       success: function(data) { 
        console.log("WE DELETED SOMETHING", data); 
        doYouLikeMeme.getPost(); 

       }, 
       error: function(err) { 
        console.error("ugh", err); 
       } 
      }) 
     }, 


    }; 
+0

Welcher Teil funktioniert nicht? Siehst du die Konsolenprotokollmeldungen, welche von ihnen? Erhalten Sie eine Fehlermeldung? Wo ist der Backend-Code, der den Beitrag löscht? – JJJ

+0

@Juhana Ich bin fast positiv, es ist $ (this) .parent(). Data ('id'). commentID kommt in meiner console.log als undefined zurück. Um Ihnen mehr Kontext zu geben, lege ich li an die Seite an, zusammen mit einem a-Tag, das als "x" dargestellt wird. $ ('. Deletebutton'). On ('Klicken', Funktion (Element) { event.preventDefault(); var commentId = $ (this) .parent(). Data ('id'); Konsole .log ("ID", commentId) window.glob = $ (this); $ (dies) .parent(). remove(); doYouLikeMeme.deletePost (commentId); }); – codegrobg

+1

Ja, dieser Code ist bereits in der Frage. Es ist der * Frontend * -Code. Wo ist der * Backend * -Code? Welche dieser Protokollmeldungen sehen Sie, wenn die Funktion aufgerufen wird? – JJJ

Antwort

0

Wenn Ihr übergeordnetes Element html ein id-Attribut wie folgt enthält: id="something", versuchen Sie diese

$(this).parent().attr('id'); 

Wenn Ihr übergeordnetes Element html ein Datenattribut wie data-id="something" enthält .data dann verwenden ('id') wie du es in deinem Code getan hast.

+0

Dies sollte ein Kommentar sein: * Wie ist die ID in der verwandten HTML gespeichert? * Denn sonst ist dies nur eine Vermutung. –

+0

Ich habe aktualisiert, um Optionen zur Verfügung zu stellen – grateful

Verwandte Themen