模块功能:加入购物车【html+css+js】

<!DOCTYPE html>
<html>
  <head>
    <title>购物车</title>
    <meta charset="utf-8" />
    <style type="text/css">
      h1 {
        text-align:center;
      }
      table {
        margin:0 auto;
        width:60%;
        border:2px solid #aaa;
        border-collapse:collapse;
      }
      table th, table td {
        border:2px solid #aaa;
        padding:5px;
      }
      th {
        background-color:#eee;
      }
    </style>
    <script type="text/javascript">
    	//加入购物车=================================================
    	//调用此函数时传入了this,声明参数来接收它,参数名不能叫this(关键字)
    	function add_shoppingcart(btn){
			//获取按钮的爷爷
			var tr = btn.parentNode.parentNode;
			//获取tr的所有孩子(tds)
			var tds = tr.getElementsByTagName("td");
			//获取第1个td的内容(商品名)
			var name = tds[0].innerHTML;
			//获取第2个td的内容(单价)
			var price = tds[1].innerHTML;
			//创建一个新的tr,设置内容,追加到tbody下
			var newtr = document.createElement("tr");
			newtr.innerHTML = '<td>'+name+'</td>'+
		          			'<td>'+price+'</td><td align="center">'+
		            		'<input type="button" value="-" onclick="decrease(this);"/> '+
		           			'<input type="text" size="3" readonly value="1"/> '+
		           			'<input type="button" value="+" onclick="increase(this);"/>'+
		          			'</td>'+
		         			'<td>'+price+'</td>'+
		          			'<td align="center"><input type="button" value="x" onclick="drop(this);"/></td>';//添加删除事件
		    var tbody = document.getElementById("goods");
		    tbody.appendChild(newtr);
		    sum();
    	}
    	//加法 数量不能大于库存========================================
    	function increase(btn){
    		//获取按钮的父亲
    		var td2 = btn.parentNode;
    		//获取td2内的文本框
    		var text = td2.getElementsByTagName("input")[1];
    		//获取文本框内值+1后写回文本框
    		var amount = text.value;
    		text.value = ++amount;
    		//获取td2的哥哥td1,从中取出单价
    		var td1 = td2.parentNode.getElementsByTagName("td")[1];
    		var price = td1.innerHTML;
    		//计算金额
    		var mny = price*amount;
    		//获取td2的弟弟td3,将金额写回td3
    		var td3 = td2.parentNode.getElementsByTagName("td")[3];
    		td3.innerHTML = mny;
    		sum();
    	}
    	//减法 数量不能小于1 =================================================
		function decrease(btn){
    		//获取按钮的父亲td2
    		var td2 = btn.parentNode;
    		//获取td2的文本框
    		var text = td2.getElementsByTagName("input")[1];
    		//获取文本框的值-1写回文本框
    		var amount = text.value;
    		if(amount<1){
    			text.value = 0;
    		}
    		if(amount>0){
    			text.value = --amount;
    		}
    		//获取td2的哥哥td1,从中取回单价
    		var td1 = td2.parentNode.getElementsByTagName("td")[1];
    		var price = td1.innerHTML;
    		//计算金额
    		var mny = price*amount;
    		//获取td2的弟弟td3,将金额写入td3
    		var td3 = td2.parentNode.getElementsByTagName("td")[3];
    		td3.innerHTML = mny;
    		sum();
    	}
    	//删除tr行,而不是删除tr行中所有td====================
    	function drop(btn){
    		var tr = btn.parentNode.parentNode;
    		var tbody = document.getElementById("goods");
    		tbody.removeChild(tr);
			sum();
    	}
    	//计算总金额
    	function sum() {
    		//获取购物车内所有的数据行
    		var tbody = 
    			document.getElementById("goods");
    		var trs = 
    			tbody.getElementsByTagName("tr");
    		//遍历这些行
    		var s = 0;
    		for(var i=0;i<trs.length;i++) {
    			//获取每一行下第4个td的内容(金额)
    			var mny = 
    				trs[i].getElementsByTagName("td")[3].innerHTML;
    			//累加
    			s += parseFloat(mny);
    		}
    		//将合计值写入合计列(id="total")
    		var td = 
    			document.getElementById("total");
    		td.innerHTML = s;
    	}
    	</script>
  </head>
  <body>
    <h1>真划算</h1>
    <table>
      <tr>
        <th>商品</th>
        <th>单价(元)</th>
        <th>颜色</th>
        <th>库存</th>
        <th>好评率</th>
        <th>操作</th>
      </tr>   
      <tr>
        <td>罗技M185鼠标</td>
        <td>80</td>
        <td>黑色</td>
        <td>893</td>
        <td>98%</td>
        <td align="center">
          <input type="button" value="加入购物车" onclick="add_shoppingcart(this);"/>
        </td>
      </tr>
      <tr>
        <td>微软X470键盘</td>
        <td>150</td>
        <td>黑色</td>
        <td>9028</td>
        <td>96%</td>
        <td align="center">
          <input type="button" value="加入购物车" onclick="add_shoppingcart(this);"/>
        </td>
      </tr>
      <tr>
        <td>洛克iphone6手机壳</td>
        <td>60</td>
        <td>透明</td>
        <td>672</td>
        <td>99%</td>
        <td align="center">
          <input type="button" value="加入购物车" onclick="add_shoppingcart(this);"/>
        </td>
      </tr>
      <tr>
        <td>蓝牙耳机</td>
        <td>100</td>
        <td>蓝色</td>
        <td>5</td>
        <td>95%</td>
        <td align="center">
          <input type="button" value="加入购物车" onclick="add_shoppingcart(this);"/>
        </td>
      </tr>
      <tr>
        <td>金士顿U盘</td>
        <td>70</td>
        <td>红色</td>
        <td>482</td>
        <td>100%</td>
        <td align="center">
          <input type="button" value="加入购物车" onclick="add_shoppingcart(this);"/>
        </td>
      </tr>
    </table>
  
    <h1>购物车</h1>
    <table>
      <thead>
        <tr>
          <th>商品</th>
          <th>单价(元)</th>
          <th>数量</th>
          <th>金额(元)</th>
          <th>删除</th>
        </tr>
      </thead>
      <tbody id="goods">
      </tbody>
      <tfoot>
        <tr>
          <td colspan="3" align="right">总计</td>
          <td id="total"></td>
          <td></td>
        </tr>
      </tfoot>
    </table>    
  </body>
</html>

猜你喜欢

转载自blog.csdn.net/vayne_xiao/article/details/54572615
今日推荐