-2
純粋なJSでショッピングカートを作ろうとしています。私は動的に私の製品やボタンを増減/削除するいくつかのdivを作成しようとしているが、私は立ち往生しています。以下は、これらのdivを作成する私の関数です:純正jsショッピングカート
function displayCart() {
let output = '';
for (let i in cart) {
output += '<div class="card card-body cartc">' + '<p>' +
'<span id="' + cart[i].name + '">' + cart[i].name + '</span>' +
'<button class="minus">-</button>' +
' ' + cart[i].count + ' шт.' +
'<button class="plus">+</button>' +
'<button class="delete">x</button>' +
'</p>' + '</div>';
};
document.querySelector('.cart').innerHTML = output;
document.querySelector('.total').innerHTML = totalCost();}
次のステップはボタンにイベントを入れることです。
document.addEventListener("click", function (event) {
if (document.querySelector('.minus')) {
let name = this.querySelector('.cartc span').getAttribute("id");
removeItemFromCart(name);
displayCart();
}});
あなたが見ることができるように、それは最初.cart
スパンIDを検索し、removeItemFromCart()
にそれを返しますが、この機能は、私が作成したすべてのdiv要素だけではなく、最初の1をで動作するはずです。どのように解決することができますか?
あなたは違いは、私がsimpleCartかのjQueryを使用せずに、純粋なJavaScriptで私のスクリプトを書きたいということですhttps://enoltc.github.io/hw-2/かhttps://github.com/ENoLTC/hw-2/ Creating a Shopping Cart using only HTML/JavaScript でプロジェクト全体を見てみることができます。
に(https://stackoverflow.com/questions/16293977/creating-a-shopping-cart [のみHTML/JavaScriptを使用してショッピングカートを作成する]の可能な重複をやりました-using-only-html-javascript) –
document.querySelectorは、セレクタに一致する最初の要素を返します。 https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector。おそらく、document.querySelectorAll()が必要ですか?さらに優れたelement.querySelectorAll()(https://developer.mozilla.org/en-US/docs/Web/API/Element/querySelectorAll)は、呼び出された要素の子孫であるすべての要素のリストを返します。セレクタそうすれば、毎回作業している特定の部門に制限することができます。あなたが検索する時間があれば、答えはしばしばドキュメントにあります。 – ADyson
https://stackoverflow.com/questions/16293977/creating-a-shopping-cart-using-only-html-javascriptは私の質問のための解決策ではない、事は私が純粋なJSに書いてほしいということです。 simpleCartまたはjQueryを使用して –