微信:xujie766(学习资源,资料视频)
js事件实现简易购物车
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<table border="1px" cellspacing="0">
<thead>
<tr>
<th>商品</th>
<th>单价</th>
<th>数量</th>
<th>小计</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td>华为Mate50Pro</td>
<td>
<span>7999</span>元
</td>
<td>
<button class="pop">-</button>
<input type="text" value="1" size="2">
<button class="add">+</button>
</td>
<td>
<span class="xj">7999</span>元
</td>
<td>
<button class="del">删除</button>
</td>
</tr>
<tr>
<td>小米40Pro</td>
<td>
<span>5999</span>元
</td>
<td>
<button class="pop">-</button>
<input type="text" value="1" size="2">
<button class="add">+</button>
</td>
<td>
<span class="xj">5999</span>元
</td>
<td>
<button class="del">删除</button>
</td>
</tr>
<tr>
<td>OppoA76</td>
<td>
<span>2999</span>元
</td>
<td>
<button class="pop">-</button>
<input type="text" value="1" size="2">
<button class="add">+</button>
</td>
<td>
<span class="xj">2999</span>元
</td>
<td>
<button class="del">删除</button>
</td>
</tr>
<tr>
<td>荣耀40Pro</td>
<td>
<span>4999</span>元
</td>
<td>
<button class="pop">-</button>
<input type="text" value="1" size="2">
<button class="add">+</button>
</td>
<td>
<span class="xj">4999</span>元
</td>
<td>
<button class="del">删除</button>
</td>
</tr>
<tr>
<td>Apple11Pro</td>
<td>
<span>8999</span>元
</td>
<td>
<button class="pop">-</button>
<input type="text" value="1" size="2">
<button class="add">+</button>
</td>
<td>
<span class="xj">8999</span>元
</td>
<td>
<button class="del">删除</button>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="5">
总价:<span class="money"></span>元
数量:<span class="count"></span>个
</td>
</tr>
</tfoot>
</table>
</body>
</html>
<script>
var otab = document.querySelector('table');
var omoney = document.querySelector('.money');
var ocount = document.querySelector('.count');
otab.onclick = function (evt){
var e = evt || event;
if(e.target.className=='pop'){
//点击的是-
onPop(e.target);
}
if(e.target.className=='add'){
//点击的是+
onAdd(e.target)
}
if(e.target.className=='del'){
//点击的是删除
onDel(e.target)
}
}
// 创建点击-事件
function onPop(obj) {
console.log(obj.nextElementSibling.value);
var num = obj.nextElementSibling.value;
num--;
if(num<=1){
num = 1
}
obj.nextElementSibling.value = num;
var price = obj.parentNode.previousElementSibling.firstElementChild.innerHTML*1;
// 计算小计 下面是一个有参函数
getNum(obj,price,num)
getMoney();
getNum();
}
// 创建点击+事件
function onAdd(obj){
var num = obj.previousElementSibling.value;
num++;
obj.previousElementSibling.value=num;
var price = obj.parentNode.previousElementSibling.firstElementChild.innerHTML*1;
getNum(obj,price,num);
getMoney();
getCount()
}
// 创建删除事件
function onDel(obj){
if(confirm('确定要删除嘛!')){
obj.parentNode.parentNode.remove();
getMoney();
getCount();
}
}
// 创建小计函数
// (obj,price,num)从上面获取obj点击对象,price价格,num数量
function getNum(obj,price,num){
obj.parentNode.nextElementSibling.firstElementChild.innerHTML = price * num;
}
// 创建求和函数
function getMoney(){
var sum = 0;
var oxj = document.querySelectorAll('.xj');
for(var i=0;i<oxj.length;i++){
sum += parseFloat(oxj[i].innerHTML)
}
omoney.innerHTML = sum;
}
// 创建求数量函数
function getCount(){
var count = 0;
var oinp = document.querySelectorAll('input');
for(var i=0;i<oinp.length;i++){
count+=parseInt(oinp[i].value)
}
ocount.innerHTML=count;
}
</script>