湖上湖
2023-04-27 16:54:37
問(wèn)題:我的網(wǎng)站上有一個(gè)簡(jiǎn)單的店面,允許用戶選擇數(shù)量然后添加到購(gòu)物車。我遇到的問(wèn)題是當(dāng)用戶添加到購(gòu)物車時(shí),該功能正在抓取<select> <option>html 文件中的第一個(gè)。結(jié)果是添加到購(gòu)物車的任何項(xiàng)目都是按第一個(gè)選擇器數(shù)量添加的。我避免使用 id 并將它們傳遞給函數(shù),因?yàn)樵谀承r(shí)候所有店面項(xiàng)目都會(huì)被動(dòng)態(tài)加載。這是我的第一次 Web 開(kāi)發(fā)經(jīng)驗(yàn)。預(yù)期結(jié)果:為項(xiàng)目選擇數(shù)量并添加到購(gòu)物車時(shí),數(shù)量應(yīng)取決于“最近”的數(shù)量。我的理解:在我addQty();下面的函數(shù)中var e = document.getElementByClassName("qty);",應(yīng)該得到最接近函數(shù)調(diào)用的“數(shù)量”類。我不知道該怎么做。代碼:下面是一個(gè)item card html的樣子(有多個(gè)item cards)和我寫的JS函數(shù)。* HTML<div class="card-footer"> <select class="qty"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select> <button onclick="addQty();">Add to Cart</button></div>JSfunction addQty(){ var e = document.getElementClassName("qty"); var qty = e.options[e.selectedIndex].value; var s = { //Reset the cart session to remove everything added to the cart previously. 'reset':true, //Define the product path(s) and the quantity to add. 'products' : [ { 'path':'test-product', 'quantity': qty } ], 'checkout': false } fastspring.builder.push(s);}感謝您的幫助。我的解決方案 我在每個(gè)產(chǎn)品的 DOM 中的較高位置添加了一個(gè) productID。然后在 querySelector() 調(diào)用中使用它來(lái)識(shí)別正在引用哪個(gè)選擇。<div class="column" id="test-product-2"> <div class="card-footer"> <select class="qty"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select> <button onclick="addQty('test-product-2');">Add to Cart</button> </div></div>
2 回答

繁星淼淼
TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊
如果您打算在一個(gè)頁(yè)面上有多個(gè)產(chǎn)品并且不想在標(biāo)簽id
上放置一個(gè)select
,您可能仍然希望在每個(gè)產(chǎn)品的 DOM 中更高級(jí)別的標(biāo)簽上使用唯一 ID。并將該值傳遞給您的addQty
函數(shù)。然后你可以使用querySelector
,像這樣:
var qtySelect = document.querySelect("#uniqueId .qty"); var qty = qtySelect.options[qtySelect.selectedIndex].value;

慕萊塢森
TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
看起來(lái)您正在使用getElementById,但您嘗試獲取的元素沒(méi)有該 ID。您應(yīng)該將 id 添加到該元素或通過(guò)其他內(nèi)容(例如類名)進(jìn)行搜索。下面是 id 解決方案的樣子:
<div class="card-footer">
<select class="qty" id="qty">
...
</div>
添加回答
舉報(bào)
0/150
提交
取消