0
function retrieveProductList(data) {
var container = document.getElementById('listing_gallery');
container.innerHTML = '';
data.forEach(function(listingSnap) { // loop over all jobs
var key = listingSnap.key;
var Items = listingSnap.val();
var productCard = `
<div class="col-sm-4">
<div class="card" onclick="showproductpage();" id="${key}">
<img class="card-img-top" src="${Items.ProductImageUrl}" alt="Card image cap">
<div class="card-block">
<h4 class="card-title">Firebase</h4>
<p class="card-title">${Items.NSN}</p>
<p class="card-text" id="product_price">${Items.Price}</p>
<a href="#" data-name="Lemon" data-price="5" class="add-to-cart btn btn-primary" onclick="Add_item_to_cart();">Add to cart</a>
</div>
</div>
</div>
`;
container.innerHTML += productCard;
})
}
機能が働くの下のコードを使用してこのカードを移入するfirebaseデータ反復処理し、必要なすべての情報を表示する表示されません。私が問題を抱えているのは、それをクリックすると、各カードIDをコンソールに取得する方法です。私はこの機能で試しました
function showproductpage(){
console.log("Product clicked")
console.log(this.id);
}
この機能はコンソールで「製品がクリックされました」と表示され、idは未定義と識別されます。私は間違って何をしていますか、カードのファイヤーベースIDを表示するためにどうすれば修正できますか?
私は前に、以前の方法を使用していたし、それがこののscenerio – learner101
のために働いていない理由、それは私は2番目のスニペットを作成した任意のアイデアを働いた:以下のサンプル上記。 2番目のメソッドでは、 'event.target'を呼び出して、クリックされたDOM要素のハンドルを取得できます。次に、そのターゲットから 'id'を取得します。 –