一个简单的购物车程序(html+js)

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>多选购物车</title>
<style>
	.delete{
		border: none;
		color: blue;
		background-color: white;
		width: 60px;
	}	
</style>
<script>
	function selectAll(){//判断是否全选,然后选择是否全选
		var Name = document.getElementsByName("shopName");
		var div1 = document.getElementById("div1");
		var all = document.getElementById("SelectAll").checked;
		var Len = Name.length;//选择框的个数
		var select = 0;//所选择框的个数
		for(var i = 0;i<Len;i++){
			if(Name[i].checked == true){
				select++;
			}
		}
		if(select == Len){
			document.getElementById("SelectAll").checked = true;
		}
		else{
			document.getElementById("SelectAll").checked = false;
		}
	}
	function ifSelectAll(){//是否全选
		var Name = document.getElementsByName("shopName");
		var all = document.getElementById("SelectAll").checked;
		var Len = Name.length;
			if(all == true){
				for(var i = 0;i<Len;i++){
					Name[i].checked=true;
				}
            }else{
                for(var i=0;i<Len;i++){
					Name[i].checked=false;
					document.getElementById("price").innerHTML = "总数量:0";
				}
            }
	}
	function inSelect(){//反选(商品数量未做改变)
		var Name = document.getElementsByName("shopName");
		var all = document.getElementById("SelectAll").checked;
		var Len = Name.length;
		var right = 0;//计算选中或无选中用来后面确定是否消除全选
		var wrong = 0;
		for(var i = 0;i<Len;i++){
			if(Name[i].checked == true){
				Name[i].checked = false;
				right++;
			}
			else{
				Name[i].checked = true;
				wrong++;
			}
		}
		if(all == true&&(right == 3||wrong == 3)){
			document.getElementById("SelectAll").checked = false;
		}
		if(all == false&&(right == 3||wrong == 3)){
			document.getElementById("SelectAll").checked = true;
		}
	}
	function plusNum(name1){//添加商品
		var Name = document.getElementsByName(name1);//获取当前商品的三个input标签的值
		var Num = Name[1].value;
		if(Num>=10){
			alert("买太多了!亲,我们这边没货呦!");
			Num--;
		}
		Num++;
		Name[1].value = Num;
	}
	function lowNum(name1){//减少商品数量
		var Name = document.getElementsByName(name1);
		var Num = Name[1].value;
		if(Num<=1){
			alert("不想买?可以取消的!");
			Num++;
		}
		Num--;
		Name[1].value = Num;
	}
	function allNum(){//计算商品的总数
		var tab = document.getElementById("tab1").getElementsByTagName("tr");//获取table中tr的标签
		var input = document.getElementsByTagName("input");//筛选所有的input标签选择type为text进行数量计算
		var div1 = document.getElementById("price");
		var Name = document.getElementsByName("shopName");
		var trNum = tab.length-1;//最后一行统计不计入计算
		var all = 0;//商品总量
		var k = 0;
		for(var i = 0;i<trNum*5;i++){
			if(input[i].type == "text" && Name[(i-2)/5].checked == true){
				all += parseInt(input[i].value);
				div1.innerHTML = "总数量:"+all;
			}
			else{
				k++;
			}
		}
		if(k == trNum*5){
			document.getElementById("price").innerHTML = "总数量:0";
		}
	}
	function allPrice(){//计算商品的总价格(所选)
		var tab = document.getElementById("tab1").getElementsByTagName("tr");
		var allPrice = document.getElementById("allPrice");
		var Name = document.getElementsByName("shopName");
		var trNum = tab.length-1;
		var price = 0;
		for(var i = 0;i<trNum;i++){
			if(Name[i].checked == true){
				price += tab[i].getElementsByTagName("td")[2].getElementsByTagName("input")[1].value*tab[i].getElementsByTagName("td")[3].innerHTML;
				
			}
		}
		allPrice.innerHTML = price;
//			allPrice.innerHTML = tab[0].getElementsByTagName("td")[2].getElementsByTagName("input")[1].value;
//			allPrice.innerHTML = tab[0].getElementsByTagName("td")[3].innerHTML*2;
	}
	function deleteRow(rowId){//根据当前表格的索引号进行商品的删除
		var Index=document.getElementById(rowId).rowIndex; //获取当前行的索引号
		document.getElementById("tab1").deleteRow(Index);
//		document.getElementById("tab1").deleteRow(Index-1);
	}
</script>
</head>

<body>
<table border="1">
	<tr>
		<td width="65px">选择</td>
		<td width="250px">商品名称</td>
		<td width="100px">商品数量</td>
		<td width="60px">价格</td>
		<td width="60px">删了吧</td>
	</tr>
</table>
<table id="tab1" border="1">
		<tr id="shop1">
			<td width="65px"><input type="checkbox" name="shopName" onClick="selectAll();allNum();allPrice();"></td>
			<td width="250px">一个可爱的iPhonex</td>
			<td width="100px"><input type="button" value="-" name="iphone" onClick="lowNum('iphone');allNum();allPrice();"><input type="text" value="1" size="3" name="iphone" onClick="allNum();" onChange="allPrice();"><input type="button" value="+" name="iphone" onClick="plusNum('iphone');allNum();allPrice();"></td>
			<td width="60px">7000</td>
			<td width="60px"><input type="button" value="delete" class="delete" onClick="deleteRow('shop1');allNum();allPrice();"></td>
		</tr>
		<tr id="shop2">
			<td width="65px"><input type="checkbox" name="shopName" onClick="selectAll();allNum();allPrice();"></td>
			<td width="250px">A HuaWei Phone from China</td>
			<td width="100px"><input type="button" value="-" name="Huawei" onClick="lowNum('Huawei');allNum();allPrice();"><input type="text" value="1" size="3" name="Huawei" onClick="allNum();"><input type="button" value="+" name="Huawei" onClick="plusNum('Huawei');allNum();allPrice();"></td>
			<td width="60px">12000</td>
			<td width="60px"><input type="button" value="delete" class="delete" onClick="deleteRow('shop2');allNum();allPrice();"></td>
		</tr>
		<tr id="shop3">
			<td width="65px"><input type="checkbox" name="shopName" onClick="selectAll();allNum();allPrice();"></td>
			<td width="250px">DOM's Book</td>
			<td width="100px"><input type="button" value="-" name="DOM" onClick="lowNum('DOM');allNum();allPrice();"><input type="text" value="1" size="3" name="DOM" onClick="allNum();"><input type="button" value="+" name="DOM" onClick="plusNum('DOM');allNum();allPrice();"></td>
			<td width="60px">20</td>
			<td width="60px"><input type="button" value="delete" class="delete" onClick="deleteRow('shop3');allNum();allPrice();"></td>
		</tr>
	</table>
</body>
</html>

  • 10
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,我可以帮您做一个简单购物车。首先,我们需要一个 HTML 页面来显示购物车的商品和价格: ```html <!DOCTYPE html> <html> <head> <title>购物车</title> <style> /* 定义样式 */ table { width: 100%; border-collapse: collapse; } th, td { padding: 8px; text-align: left; border-bottom: 1px solid #ddd; } tr:hover { background-color: #f5f5f5; } .total { text-align: right; } </style> </head> <body> <h1>购物车</h1> <table> <thead> <tr> <th>商品名称</th> <th>价格</th> <th>数量</th> <th>小计</th> </tr> </thead> <tbody> <tr> <td>商品1</td> <td>10.00</td> <td><input type="number" value="1"></td> <td>10.00</td> </tr> <tr> <td>商品2</td> <td>20.00</td> <td><input type="number" value="1"></td> <td>20.00</td> </tr> <tr class="total"> <td colspan="3">总计</td> <td>30.00</td> </tr> </tbody> </table> </body> </html> ``` 这里我们用了一个表格来显示购物车商品,每个商品有商品名称、价格、数量和小计四个属性。在最后一行,我们使用 `colspan="3"` 来让“总计”这个单元格跨越三列。 接下来,我们需要使用 JavaScript 来实现购物车的功能,包括计算小计和总计、添加商品、删除商品等。为了方便,我们使用 jQuery 库来简化操作。 首先,我们添加一个按钮来删除商品: ```html <tr> <td>商品1</td> <td>10.00</td> <td><input type="number" value="1"></td> <td>10.00 <button class="delete">删除</button></td> </tr> ``` 然后,我们添加一些 JavaScript 代码: ```html <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script> <script> $(function() { // 计算小计和总计 function updateTotal() { var total = 0; $('tbody tr').each(function() { var price = parseFloat($(this).find('td:eq(1)').text()); var quantity = parseInt($(this).find('input[type="number"]').val()); var subtotal = price * quantity; $(this).find('td:eq(3)').text(subtotal.toFixed(2)); total += subtotal; }); $('.total td:eq(1)').text(total.toFixed(2)); } // 添加商品 $('.add').click(function() { var name = prompt('请输入商品名称:'); if (name) { var price = parseFloat(prompt('请输入商品价格:')); if (!isNaN(price)) { var quantity = parseInt(prompt('请输入商品数量:')); if (!isNaN(quantity)) { var subtotal = price * quantity; var tr = $('<tr><td></td><td></td><td><input type="number" value=""></td><td></td></tr>'); tr.find('td:eq(0)').text(name); tr.find('td:eq(1)').text(price.toFixed(2)); tr.find('input[type="number"]').val(quantity); tr.find('td:eq(3)').text(subtotal.toFixed(2) + ' <button class="delete">删除</button>'); $('tbody').append(tr); updateTotal(); } } } }); // 删除商品 $('tbody').on('click', '.delete', function() { $(this).closest('tr').remove(); updateTotal(); }); // 修改数量 $('tbody').on('input', 'input[type="number"]', function() { updateTotal(); }); // 初始化总计 updateTotal(); }); </script> ``` 这里我们定义了一个 `updateTotal` 函数来计算小计和总计。它首先遍历每个商品行,获取商品价格和数量,计算小计并更新显示。然后累加所有商品的小计得到总计,并更新显示。 然后我们添加了一个按钮来添加商品。它会弹出对话框要求输入商品名称、价格和数量,并根据输入创建一个新的商品行。 最后,我们使用 jQuery 的 `on` 方法来添加事件处理程序。当点击删除按钮时,它会找到最近的商品行并删除它。当修改数量时,它会重新计算小计和总计。 现在,我们就完成了一个简单购物车。您可以在此基础上继续扩展,增加更多功能和样式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值