欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用HTML简单实现购物车

程序员文章站 2022-03-15 09:45:15
...
<head>
	<meta charset="UTF-8">
	<title>我的购物车</title>
	<style type="text/css">
		tr {
			height: 50px;
		}
	</style>
	<!--第一步引入jq-->
	<script type="text/javascript" src="js/jquery-1.9.1.js" charset="UTF-8"></script>
	
	<script type="text/javascript">
		$(function() { /*页面加载完之后动态绑定事件*/
				$("tr:even").css("background", "#87CEFA  ");
				$("tr:odd").css("background", "#BBFF00");
			/*第二步实现全选*/
			//1.全选
			$("#chks").click(function() {
				//获取全选框的值
				var flag = $(this).prop("checked");
				//alert(flag);

				//根据全选框状态修改各个复选框的状态
				/*input[name=chk]-->得到所有的复选框*/
				$("input[name=chk]").prop("checked", flag);
			});

			//2.完善全选(有一项未选中,全选消除),给每个图书的复选框绑定单击事件
			$("input[name=chk]").click(judgeAll);

			//3.反选
			$("#fx").click(function() {
				//获取所有图书的复选框
				var arr = $("input[name=chk]");
				//所有图书复选框的状态取反
				arr.each(function() {
					//先得到复选框之前的状态
					var flag = $(this).prop("checked");
					//在修改为相反的状态
					$(this).prop("checked", !flag);
				});
				//判断修改全选框的状态
				judgeAll();
			});
			
			/*第三步实现购物车新增、删除功能*/
			//4.新增一行
			 $("#addRow").click(function(){
			 	$("tr:odd").css("background", "#87CEFA  ");
				$("tr:even").css("background", "#BBFF00");
			 	//创建一个新行
			 	var newRow = $('<tr>'+
					'<td><input type="checkbox" name="chk" id="" value="3" /></td>'+
					'<td>《java从入门到精通》</td>'+
					'<td>明日科技</td>'+
					'<td>10</td>'+
					'<td>'+
						'<input type="button" name="" id="" value="修改数量" onclick="updateAmount(this)" />'+
						'<input type="button" name="" id="" value="删除" onclick="delRow(this)" />'+
					'</td>'+
				'</tr>');
				
				//把新增的行数添加到表格的最后
				$("tr:last").after(newRow);
			 
			 });
			
			//6.新增多行(复制行)
			$("#copyRow").click(function(){
				//获取所有被选中的复选框
				var arr = $("input[name=chk]:checked");
				//在克隆(复制)一份,要不就是移动
				var cloneAll = arr.parents("tr").clone();
				//把增加的添加到表格的最后
				$("tr:last").after(cloneAll);
			});
			
			//7.删除多行
			$("#delRow").click(function(){
				//获取所有被选中的复选框
				var arr = $("input[name=chk]:checked");
				//完后删除操作
				if(arr.length==0){
					alert("快点去选择删除的图书");
				}else{
					arr.parents("tr").remove();/*jq中的隐藏的迭代*/
				}
			});
			
		});
		
		//5.删除一行
		function delRow(obj){
			//$(obj).parent().parent().remove();
			$(obj).parents("tr").remove();
		}

		//8.修改数量
			function updateAmount(obj){
				//1.10---<input value='10';>
				//1.1  找到数量所在的td
				var  numCell = $(obj).parent().prev();
				//console.info(numCell);
				
				//1.2获取数量
				var num = numCell.html();
				
				//1.3修改数量所在的td的内容,修改为input
				numCell.html('<input type="text" onblur="checkNum(this)" value="'+num+'">');
				
				
				
				//<input type="button" name="" id="" value="修改数量"  -----  <input type="button" name="" id="" value="确定"
				$(obj).parent().html('<input type="button" name="" id="" value="确定" onclick="confirmAmount(this)" />'+
				'<input type="button" name="" id="" value="删除" onclick="delRow(this)" />');
			}
			
			//9.确定数量
			function confirmAmount(obj){
				//1.<input value='10';> --- 10
				//1.1  找到数量所在的td
					var  numCell = $(obj).parent().prev();
				//1.2获取数量
					var num = numCell.find("input").val();
				//1.3修改数量所在的td的内容,将input直接修改为数量
					/*alert(num)*/
					numCell.html(num);
					
				//2.<input type="button" name="" id="" value="确定"  -----   <input type="button" name="" id="" value="修改数量" 
					$(obj).parent().html('<input type="button" name="" id="" value="修改数量" onclick="updateAmount()(this)" />'+
				'<input type="button" name="" id="" value="删除" onclick="delRow(this)" />');
				
			}
			
			
			//10.验证数量
			function checkNum(obj){
				var num = $(obj).val();
				if(isNaN(num) || num<0 || parseInt(num) != num){
					alert("必须是整数");
				}
			}

		//判断全选(提取方法,便于重用)
		function judgeAll() {
			//判断所有图书复选框的状态
			var flag = true;
			$("input[name=chk]").each(function(){
				var f = $(this).prop("checked");
				if(f == false) {
					flag = false;
					return;
				}
			}); 
			//根据所有图书复选框的状态修改全选框的状态
			$("#chks").prop("checked", flag);
		}
	</script>
	
	
</head>

<body>
	<h3>jQuery操作表格</h3>
	<hr />
	<input type="button" id="fx" value="反选" />
	<input type="button" id="addRow" value="新增一行" />
	<input type="button" id="delRow" value="删除多行" />
	<input type="button" id="copyRow" value="复制行" />
	<table border="1px" cellpadding="10px" cellspacing="0" id="ta">
		<tr>
			<td width="50px"><input type="checkbox" name="chks" id="chks" value="1" /></td>
			<td width="300px">书名</td>
			<td width="300px">作者</td>
			<td width="300px">数量</td>
			<td width="300px">操作</td>
		</tr>
		<tr id="">
			<td><input type="checkbox" name="chk" id="" value="2" /></td>
			<td>《数据结构》</td>
			<td>程杰</td>
			<td>10</td>
			<td>
				<input type="button" name="aa" id="" value="修改数量" />
				<input type="button" name="" id="" value="删除" />
			</td>
		</tr>
		<tr>
			<td><input type="checkbox" name="chk" id="" value="3" /></td>
			<td>《java从入门到精通》</td>
			<td>明日科技</td>
			<td>10</td>
			<td>
				<input type="button" name="" id="" value="修改数量" onclick="updateAmount(this)" />
				<input type="button" name="" id="" value="删除" onclick="delRow(this)" />

			</td>
		</tr>

		<tr>
			<td><input type="checkbox" name="chk" id="" value="4" /></td>
			<td>《web开发详解》</td>
			<td>张老师</td>
			<td>30</td>
			<td>
				<input type="button" name="" id="" value="修改数量" onclick="updateAmount(this)"/>
				<input type="button" name="" id="" value="删除" />
				
			</td>
		</tr>

	</table>
</body>

博主亲测有效
使用HTML简单实现购物车

相关标签: HTML jq