溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

jQuery怎么利用DOM遍歷實現商城結算系統

發布時間:2022-07-02 13:57:58 來源:億速云 閱讀:180 作者:iii 欄目:開發技術

今天小編給大家分享一下jQuery怎么利用DOM遍歷實現商城結算系統的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

效果圖

jQuery怎么利用DOM遍歷實現商城結算系統

一.body

<body>
		<div >
			<table>
				<thead align="center">
					<p ><span >結算中心</span></p>
					<tr class="tr1">
						<th ><input type="checkbox" id="cballS">全選</th>
						<th  >商品</th>
						<th >單價</th>
						<th >數量</th>
						<th ><input type="hidden" value="0" />小計</th>
						<th >操作</th>
					</tr>
					<!--//作為換行使用-->
					<tr>
						<td ><p>&nbsp;</p></td>
					</tr>

				</thead>

				<tbody>
					<tr>
						<td class="cbAll"><input type="checkbox" id="cball" onclick="chClick()">選中</td>
						<td >vivoX86</td>
						<td >1299.99</td>
						<td >
							<input type="button" value="-" />
							<input type="text" value="0"  />
							<input type="button" value="+" />
						</td>
						<td >0</td>
						<td ><a href="#" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  onclick="del(this)" >刪除</a></td>
					</tr>
					<!--//作為換行使用-->
					<tr>
						<td ><p>&nbsp;</p></td>
					</tr>
					
					<tr class="tr1">
						<td class="cbAll"><input type="checkbox" id="cball" onclick="chClick()">選中</td>
						<td >oppoS23</td>
						<td >1399.99</td>
						<td >
							<input type="button" value="-" />
							<input type="text" value="0" />
							<input type="button" value="+" />
						</td>
						<td >0</td>
						<td ><a href="#" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  onclick="del(this)">刪除</a></td>
					</tr>
					<!--//作為換行使用-->
					<tr>
						<td ><p>&nbsp;</p></td>
					</tr>
					
					<tr>
						<td class="cbAll"><input type="checkbox" id="cball" onclick="chClick()">選中</td>
						<td >HUAWEIS7</td>
						<td >1499.99</td>
						<td >
							<input type="button" value="-" />
							<input type="text" value="0" />
							<input type="button" value="+" />
						</td>
						<td >0</td>
						<td ><a href="#" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  onclick="del(this)">刪除</a></td>
					</tr>
					<!--//作為換行使用-->
					<tr>
						<td ><p>&nbsp;</p></td>
					</tr>
					
					<tr>
						<td class="cbAll"><input type="checkbox" id="cball" onclick="chClick()">選中</td>
						<td >Mi 8s</td>
						<td >1599.99</td>
						<td >
							<input type="button" value="-" />
							<input type="text" value="0" />
							<input type="button" value="+" />
						</td>
						<td >0</td>
						<td ><a href="#" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  onclick="del(this)">刪除</a></td>
					</tr>
					<!--//作為換行使用-->
					<tr>
						<td ><p>&nbsp;</p></td>
					</tr>
					
					<tr>
						<td class="cbAll"><input type="checkbox" id="cball" onclick="chClick()">選中</td>
						<td >iPhone13</td>
						<td >1699.99</td>
						<td >
							<input type="button" value="-" />
							<input type="text" value="0" />
							<input type="button" value="+" />
						</td>
						<td >0</td>
						<td ><a href="#" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  onclick="del(this)">刪除</a></td>
					</tr>
				</tbody>
				<tfoot>
					<!--//作為換行使用-->
					<tr>
						<td ><p>&nbsp;</p></td>
					</tr>
					
					<tr>
						<th><span >總金額</span>&nbsp;:&emsp;<span id="moneys" >0</span>元</th>
						<th>&emsp;<a href="#" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >結算</a></th>
					</tr>
				</tfoot>
			</table>
		</div>
	</body>

二.css

<style>
			.cbAll{
				border: 1px solid darkblue;
				background-color: darkgoldenrod;
				border-radius: 10px;
				position:absolute;
				
			}
		</style>

三.JavaScript

<script type="text/javascript" src="js/jquery.min.js" ></script>
		<script>
			$(function(){
				$("[type=button]").click(function(){
					//獲取按鈕
					var btn=$(this).val();
					//獲取父元素再獲取父元素的上一個同胞元素
					var Fu=parseFloat($(this).parent().prev().html());
					//獲取父元素后獲取父元素下一個同胞元素
					//var FuX=parseFloat($(this).parent().next().html());
					if(btn=="+"){
						//獲取數量
						var preVa=parseInt($(this).prev().val());
						//給數量加1
						$(this).prev().val(preVa+1)
						//獲取并賦值數量
						preVa=parseInt($(this).prev().val());
						//給父元素下一個同胞元素賦值,并保留小數點后兩位
						var ptsum=(Fu*preVa).toString();
						var newSum="";
						for(i=0;i<ptsum.length;i++){
							if(ptsum[i]=="."){
								if(ptsum[i+1]!=undefined){
									newSum+=ptsum[i]+ptsum[i+1];
								}
								if(ptsum[i+2]!=undefined){
									newSum+=ptsum[i+2];
								}
								break;
							}
							newSum+=ptsum[i];
						};
						$(this).parent().next().html(newSum);
						Smon();
						
					}else{
						//獲取數量
						var preVa=parseInt($(this).next().val());
						if(preVa==0){
							return alert("不能再少了!");
						}
						//給數量減一
						$(this).next().val(preVa-1);
						//獲取并賦值元素
						preVa=parseInt($(this).next().val());
						//給父元素下一個同胞元素賦值,并保留小數點后兩位
						var ptsum=(preVa*Fu).toString();
						var newSum="";
						for(i=0;i<ptsum.length;i++){
							if(ptsum[i]=="."){
								if(ptsum[i+1]!=undefined){
									newSum+=ptsum[i]+ptsum[i+1];
								}
								if(ptsum[i+2]!=undefined){
									newSum+=ptsum[i+2];
								}
								break;
							}
							newSum+=ptsum[i];
						}
						$(this).parent().next().html(newSum);
						Smon();
						
					};
					
				});
				
				//全選按鈕
				$("#cballS").click(function(){
					
					var flag=$(this).prop("checked");
					$("[type=checkbox]").each(function(){
						$(this).prop("checked",flag);
						
					});
					Smon()
				});
				//輸入框發生變化刷新小計
				
				$("[type='text']").change(function(){
							
							//獲取元素內容
							var ptNum=parseFloat($(this).val());
							
							if(ptNum<=0 || isNaN(ptNum)){
								$(this).val(0);
								return false;
							};
							var n1=ptNum.toString();
							for(i=0;i<n1.length;i++){
								//不能為小數或者不能大于100
								if(n1[i]=="." || i==2){
									$(this).val(0);
									return false;
								};
							};
							
							//獲取單價
							var ptDj=parseFloat($(this).parent().prev().html());
							//獲取總額
							var ptSum=(ptNum*ptDj).toString();
							var newSum="";
							//保留小數點后兩位
							for(i=0;i<ptSum.length;i++){
								if(ptSum[i]=="."){
									if(!isNaN(ptSum[i+1])){
										newSum+=ptSum[i]+ptSum[i+1];
										if(!isNaN(ptSum[i+2])){
											newSum+=ptSum[i+2];
										};
										break;
									};

								};
								newSum+=ptSum[i];
							}
							//設置小計
							$(this).parent().next().html(newSum);
							Smon();
				});
				
				
			});
			//計算總金額
			function Smon(){
					var sum=0;
					//循環遍歷所有選中按鈕后邊的值
					$("[type=checkbox]:checked").each(function(){
						//獲取選中按鈕同級的小計
						var xiaoji=parseFloat($(this).parent().next().next().next().next().html());
						//判斷是否是第一行的,isNaN判斷是否可以轉數值
						if(isNaN(xiaoji)){
							xiaoji=0;
						}
						sum+=xiaoji;
					});
					sum=parseFloat(sum).toString();
					var newSum="";
					//總計金額默認保存小數點后兩位,循環拼接并賦值給新的變量
					for(i=0;i<sum.length;i++){
						if(i<=7){
							if(sum[i]=="."){
								if(sum[i+1]!=undefined){
									newSum+=sum[i]+sum[i+1];
								}
								if(sum[i+2]!=undefined){
									newSum+=sum[i+2];
								}
								break;
							}
							newSum+=sum[i];
						}
					}
					//賦值
					$("#moneys").html(newSum);
			};
			//選中按鈕判斷
			function chClick(){
					//獲取全選按鈕
					var len=$("#cballS").prop("checked");
					//獲取所有可選擇的按鈕為true的長度
					var len2=$("[type=checkbox]:checked").length;
					//獲取所有可選中按鈕的長度
					var len3=$("[type=checkbox]").length;
					//由于函數執行是按照自上而下,調用一次執行一次的方式,所以當第一次判斷選中按鈕為5個時,就去勾選全選按鈕,
					//當以后每次判斷再進來時,只會有兩種結果,一個全選是true,一個全選是false,只需要判斷全選是什么狀態就將狀態改變另一個即可。
					if(len2==len3-1 & len==false){
						$("#cballS").prop("checked",true);
					}else if(len2>=len3-1 & len==true){
						$("#cballS").prop("checked",false);
					};
					//執行完調用總計函數
					Smon();
			};
			
			//刪除,使用函數調用完成
			function del(th){
				var aa=$(th).parent().parent().next().remove();
				$(th).parent().parent().remove();
				Smon();
			};
		
		</script>

以上就是“jQuery怎么利用DOM遍歷實現商城結算系統”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女