完整案例:
<!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">
function add_shoppingcart(btn){
//console.log(btn);
var tr = btn.parentNode.parentNode;
//console.log(tr);
//找到全部td
var tds = tr.getElementsByTagName('td');
//console.log(tds);
//获取商品名
var name=tds[0].innerHTML;
var price=parseFloat(tds[1].innerHTML);
//console.log(name);
//console.log(price);
//将商品信息添加到购物车表格
var tr = document.createElement('tr');
tr.innerHTML='<td>'+name+'</td>'+
'<td>'+price+'</td>'+
'<td align="center">'+
'<input type="button" value="-" onclick="changeNum(this, -1);">'+
'<input type="text" size="3" readonly value="1"/>'+
'<input type="button" value="+" onclick="changeNum(this, 1);">'+
'</td>'+
'<td></td>'+
'<td align="center"><input type="button" value="X" onclick="removeItem(this);"></td>';
//console.log(tr);
//将tr插入到购物车
var tbody=document.getElementById('goods');
tbody.appendChild(tr);
total();
}
//计算商品总价
function total(){
//console.log('total()');
var tbody=$('goods');
var trs =
tbody.getElementsByTagName('tr');
console.log(trs);
var sum = 0;
for(var i=0; i<trs.length; i++){
var tr = trs[i];
console.log(tr);
var tds=tr.getElementsByTagName('td');
console.log(tds);
//获取商品的价格
var price=parseFloat(
tds[1].innerHTML);
console.log(price);
//获取数量值
var num = parseInt(tds[2]
.getElementsByTagName('input')[1]
.value);
console.log(num);
//计算金额
var money = num*price;
tds[3].innerHTML=money.toFixed(2);
//累计总价
sum += money;
}
//将总价写到 tfoot中
$('total').innerHTML=sum.toFixed(2);
}
function $(id){
return document.getElementById(id);
}
function changeNum(btn, n){
//console.log(n);
//找到当前的num
var input=btn.parentNode
.getElementsByTagName('input')[1];
console.log(input);
var num = parseInt(input.value);
console.log(num);
//增加/减少
num += n;
//检查是否<=0
if(num<=0){
return;
}
//更新 input.value
input.value = num;
total();
}
function removeItem(btn){
var tr=btn.parentNode.parentNode;
var tbody = $('goods');
tbody.removeChild(tr);
total();
}
</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>8937</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">
<!--
<tr>
<td>罗技M185鼠标</td>
<td>80</td>
<td align="center">
<input type="button" value="-"/>
<input type="text" size="3" readonly value="1"/>
<input type="button" value="+"/>
</td>
<td>80</td>
<td align="center"><input type="button" value="x"/></td>
</tr>
-->
</tbody>
<tfoot>
<tr>
<td colspan="3" align="right">总计</td>
<td id="total"></td>
<td></td>
</tr>
</tfoot>
</table>
</body>
</html>
相关推荐
本案例将深入探讨购物车的经典设计与实现,涉及的技术点主要包括数据结构、状态管理、计算逻辑以及用户体验。 1. 数据结构设计: - 商品项(CartItem):每个购物车中的商品都对应一个商品项,包含商品ID、数量、...
第2章 J2EE数据库编程设计与实现 ...案例11:Servlet实现简单购物车程序 案例12:JSP与Servlet之间信息传递 案例13:使用Servlet过滤器记录访问页面地址和页面执行时间 案例14:实现接受两种请求方式的Servlet 本章小结
【标题】"经典购物车代码asp.net20开发"涵盖了ASP.NET 2.0框架下构建电子商务网站的核心组件——购物车功能的实现。ASP.NET 2.0是微软推出的一个强大的Web应用程序开发平台,它提供了丰富的控件和功能,简化了开发...
### J2EE开发经典案例概览 #### 一、J2EE概述 J2EE 是一种基于Java标准版的平台,旨在为企业级应用提供一个健壮、灵活且可扩展的基础架构。该平台通过提供多种服务和技术来支持复杂的业务逻辑处理、事务管理、安全...
【Java购物车案例(Servlet+JSP)】是基于Java Web技术实现的一个经典应用场景,它展示了如何使用Servlet和JSP来构建一个简单的电子商务系统中的购物车功能。在本案例中,用户可以浏览商品,选择商品加入购物车,并...
【标题】:“Hibernate+Struts 购物车代码”是一个经典的Java开发示例,它展示了如何使用这两种技术来实现一个完整的购物车功能。Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者用Java对象来操作...
Java作为一门广泛使用的编程语言,其经典案例是学习者进阶的重要途径。这些案例涵盖了Java的核心概念和技术,有助于初学者理解和应用所学知识。以下是对"Java十大经典案例"的详细解析: 1. **银行系统模拟**:这个...
在PHP编程领域,掌握经典案例是提升技能的关键步骤。这些案例可以帮助我们理解PHP在实际项目中的应用,并加深对语言特性的理解。以下是对"php十个经典案例"的详细解析: 1. **用户注册与登录系统**:这个案例涉及到...
"PHP MYSQL DreamWeaver网站建设经典案例"这个资源提供了12个具体的实战案例,旨在帮助学习者深入理解如何将这三个元素有效结合,创建功能丰富的网页应用程序。 1. PHP基础知识:PHP是一种服务器端脚本语言,用于...
在"jsp+servlet经典案例"的压缩包中,可能会包含以下内容: - **Servlet类**:处理HTTP请求,实现业务逻辑。 - **JSP文件**:展示数据,使用EL表达式或脚本元素来显示从Servlet传递过来的数据。 - **配置文件**:如...
在Java编程领域,"购物车案例"是一个经典的实践项目,非常适合初学者用来学习和掌握基本的CRUD(创建Create、读取Read、更新Update、删除Delete)操作。在这个案例中,我们将探讨如何利用Java实现一个简单的购物车...
SSH简易购物车实现是Java开发中的一个经典案例,它涵盖了Spring、Struts和Hibernate这三大框架的集成应用。这三个框架的组合,常被称为SSH框架,是企业级Java Web开发的主流选择之一。在这个项目中,我们将深入理解...
**网上书店系统是基于JSP技术的一个典型应用案例,它涵盖了Web开发中的多个核心知识点,包括数据存储、用户交互和动态网页生成等。** 在JSP(Java Server Pages)技术中,开发者可以将HTML代码与Java代码混合编写,...
**Ajax经典案例开发大全**是一本深入探讨Ajax技术在实际应用中的详细教程,它以PDF文档的形式呈现,为开发者提供了丰富的实例源码,便于学习和参考。Ajax,全称为Asynchronous JavaScript and XML(异步JavaScript和...
在这个“java用mvc实现的购物车”案例中,我们将深入探讨如何运用`MVC`模式来构建一个功能完善的购物车系统。 **1. 模型(Model)** 模型是购物车系统的核心,负责处理数据和业务逻辑。它包含了商品对象(Product)...
在本资源中,"Android经典项目案例开发实战宝典实例源文件(下)",包含的是13到22个Android应用开发的经典案例,这些案例是深入理解和掌握Android开发技术的重要资源。每个案例都提供了完整的源代码,有助于开发者...
在现代Web开发中,实现动态交互功能是非常常见的需求,购物车功能正是这样的一个经典案例。通过JavaScript,我们可以创建一个能够进行商品选择、移动和删除操作的购物车系统。这样的系统不仅仅局限于电子商务网站中...
在这个"ASP.NET 经典案例"中,我们看到涉及了三个重要的系统:电子商务系统、论坛系统和博客系统,这些都是Web开发中常见的应用场景。 1. **电子商务系统**: 电子商务系统是在线交易的核心平台,通常包括商品展示...
2. Kotlin/Java:Kotlin是现代Android开发的主要语言,但Java也是广泛使用的经典选项。这两种语言的语法、特性以及如何在Android应用中使用它们是重要的知识领域。 3. XML布局:用于创建用户界面,定义视图和控件的...
6. **设计模式**:购物车系统可能会运用到一些经典设计模式,如工厂模式用于创建商品对象,单例模式用于保证购物车实例的唯一性,策略模式用于定义不同的促销策略等。 7. **单元测试**:项目中的`TestShopping`可能...