帮我用js做一个购物车结算提交的传值的完整代码代码
时间: 2023-12-03 08:45:30 浏览: 69
好的,以下是一个简单的购物车结算提交的传值的完整代码:
HTML代码:
```html
<!DOCTYPE html>
<html>
<head>
<title>购物车结算</title>
</head>
<body>
<h1>购物车</h1>
<table id="cart">
<tr>
<th>商品名称</th>
<th>价格</th>
<th>数量</th>
<th>小计</th>
<th>操作</th>
</tr>
<tr>
<td>商品1</td>
<td>100</td>
<td><input type="number" value="1"></td>
<td>100</td>
<td><button class="delete">删除</button></td>
</tr>
<tr>
<td>商品2</td>
<td>200</td>
<td><input type="number" value="1"></td>
<td>200</td>
<td><button class="delete">删除</button></td>
</tr>
</table>
<p>总计:<span id="total">300</span></p>
<button id="submit">提交订单</button>
<script src="cart.js"></script>
</body>
</html>
```
JS代码:
```javascript
// 获取DOM元素
const cartTable = document.getElementById('cart');
const inputNums = cartTable.getElementsByTagName('input');
const deleteBtns = cartTable.getElementsByClassName('delete');
const totalSpan = document.getElementById('total');
const submitBtn = document.getElementById('submit');
// 计算总价
function getTotal() {
let total = 0;
for (let i = 0; i < inputNums.length; i++) {
const price = parseInt(inputNums[i].parentNode.previousElementSibling.innerText);
const num = parseInt(inputNums[i].value);
total += price * num;
inputNums[i].parentNode.nextElementSibling.innerText = price * num;
}
totalSpan.innerText = total;
}
// 绑定事件
cartTable.addEventListener('input', getTotal);
for (let i = 0; i < deleteBtns.length; i++) {
deleteBtns[i].addEventListener('click', function() {
this.parentNode.parentNode.remove();
getTotal();
});
}
submitBtn.addEventListener('click', function() {
const cartData = [];
const trs = cartTable.getElementsByTagName('tr');
for (let i = 1; i < trs.length; i++) {
const tds = trs[i].getElementsByTagName('td');
const obj = {
name: tds[0].innerText,
price: parseInt(tds[1].innerText),
num: parseInt(tds[2].firstChild.value),
subtotal: parseInt(tds[3].innerText)
};
cartData.push(obj);
}
console.log(cartData); // 输出购物车数据
});
```
这段代码会实现以下功能:
1. 显示购物车中的商品数据,并能够修改数量与删除商品。
2. 实时计算总价,并显示在页面上。
3. 当用户点击提交订单按钮时,将购物车中的数据以对象数组的形式输出到控制台中。
阅读全文