2016-12-22 2 views
0

Ich versuche, die aktuelle ID eines Elements in der Tabelle abzurufen, aber wenn ich auf die Schaltfläche Purchase und console.dir klicke, wird nur das erste Element angezeigt. Ich versuchte, die this.id und Konsole zeigt mir nichts console.dirDie aktuelle ID eines Elements kann nicht abgerufen werden.

function listProducts() { 
    $('#shopProducts').empty(); 

    $.ajax({ 
     method: "GET", 
     url: kinveyBaseUrl + "appdata/" + kinveyAppKey + "/products", 
     headers: getKinveyUserAuthHeaders(), 
     success: loadProductsSuccess, 
     error: handleAjaxError 
    }); 
    // Load Products Success 
    function loadProductsSuccess(products) { 
     let table = $(` 
        <table> 
         <tr> 
          <th>Product</th> 
          <th>Description</th> 
          <th>Price</th> 
          <th>Actions</th> 
         </tr> 
        </table>`); 
     let tr = $('<tr>'); 
     for (let product of products) { 
      let tr = $('<tr>'); 
      displayTableRow(tr, product); 
      tr.appendTo(table); 
     } 
     tr.appendTo(table); 
     $('#shopProducts').append(table); 
    } 
    function displayTableRow(tr, product) { 
     let links = []; 
     let purchaseLink; 
     purchaseLink = $("<button>Purchase</button>").click(function() { 
      let currentPurchaseItem = $.ajax({ 
       method: "GET", 
       url: kinveyBaseUrl + "appdata/" + kinveyAppKey + "/products/" + this.id, 
       headers: getKinveyUserAuthHeaders(), 
       error: handleAjaxError 
      }); 
      //showMenuCartView(); 
      //listMyCartProducts(); 
      console.dir(currentPurchaseItem); 
      console.dir(this.id); 
     }); 
     links.push(purchaseLink); 
     tr.append(
      $("<td>").text(product.name), 
      $("<td>").text(product.description), 
      $("<td>").text(product.price), 
      $("<td>").append(links) 
     ); 
    } 
} 
+0

'' this.id'' im Click-Ereignis der Schaltfläche bezieht sich auf die Schaltfläche - die keine ID hat. –

+0

stellen Sie bitte sicher, dass die Schaltfläche, auf die Sie in Ihrem Selektor zielen, tatsächlich eine ID hat. –

+0

Wie kann ich ID hinzufügen, damit das Programm korrekt funktioniert? –

Antwort

0

Ich denke, man product.id statt this.id verwenden möchten.

Wie die Leute kommentiert haben, wird es hilfreich sein, die Nutzlast der Ajax-Anfrage zu sehen.

+0

Ich habe dies versucht und als ich auf die Schaltfläche geklickt habe, sehe ich Konsolenfehler wie: Anfrage Methode: GET Statuscode: 404 Nicht gefunden –

+0

Ich wirklich nicht Ich weiß nicht, welche URL du bekommen sollst. Können Sie ein Beispiel zeigen? – d2bit

+0

, dass 404-Code bedeutet, dass es die angegebene Datei nicht finden konnte, stellen Sie sicher, dass die URL in der Ajax-Anfrage korrekt ist und auf eine Datei verweist. –

Verwandte Themen