HTML代码
<html lang="en"> <head> <meta charset="UTF-8"> ​ ​ <link rel="stylesheet" href="css/style.css" /> <script type="text/javascript" src="js/script.js" ></script> </head> <body> ​ ​ <th id="header"><h1>欢迎来到此网站,请尽情购物吧</h1></th> ​ ​ <tr id="head"> <th width="100px">商品</th> <th width="200px">商品描述</th> <th width="200px">单价</th> <th width="200px">规格</th> <th width="200px">操作</th> </tr> <tr> <td class="goods"></td> <td class="describe">【12期免息】Huawei/华为Mate 30 Pro 5G麒麟990徕卡四摄5G芯片智能手机mate30pro5g官方旗舰店</td> <td class="price">7899.00</td> <td> ​ ​ <option value="4GB+64GB">4GB+64GB</option> <option value="8GB+64GB">8GB+64GB</option> <option value="4GB+128GB">4GB+128GB</option> <option value="8GB+128GB">8GB+128GB</option> </select> </td> <td class="total"> 加入购物车 </td> </tr> <tr> <td class="goods"></td> <td class="describe">保时捷Panamera S 威利原厂1:18 帕拉梅拉四门合金仿真汽车模型蓝</td> <td class="price">299.00</td> <td> <select class="select"> <option value="蓝色 Panamera蓝色">蓝色 Panamera蓝色</option> <option value="911 GT-3 白色">911 GT-3 白色</option> <option value="黑色 Cayenne黑色">黑色 Cayenne黑色</option> </select> </td> <td class="total"> 加入购物车 </td> </tr> <tr> <td class="goods"></td> <td class="describe">海贼海贼王 超大王拼图1000片木质成年路飞卡通包邮</td> <td class="price">49.99</td> <td> ​ ​ <option value="海贼王全家福">海贼王全家福</option> <option value="两年后9人集结">两年后9人集结</option> <option value="少年初长成">少年初长成</option> </select> </td> <td class="total"> 加入购物车 </td> </tr> <tr> <td class="goods"></td> <td class="describe">ThinkPad E490 2UCD/2XCD英特尔酷睿i5 14英寸联想笔记本电脑商务办公轻薄便携官方旗舰店2019款笔记本</td> <td class="price">7899.00</td> <td> ​ ​ <option value="2XCD:i5/8G/128GB+1TB/2G独显">2XCD:i5/8G/128GB+1TB/2G独显</option> <option value="2UCD:i5/8G/ 256GB/ 2G独显">2UCD:i5/8G/ 256GB/ 2G独显</option> </select> </td> <td class="total"> 加入购物车 </td> </tr> </table> <th id="header"><h1>已加入购物车的宝贝</h1></th> ​ ​ <thead id="head"> <th width="100px">商品</th> <th width="200px">商品描述</th> <th width="100px">单价</th> <th width="200px">规格</th> <th width="100px">数量</th> <th width="100px">金额</th> <th width="100px">删除</th> </thead> <tbody id="goods"></tbody> <tfoot> <td colspan="5" align="center">总计</td> <td id="total"></td> <td>元</td> </tfoot> </table> </div> </body> </html> JS代码
//增加购物车列表中的行 function addr(button){ //从商品列表中获取元素 var tr = button.parentNode.parentNode; var td = tr.getElementsByTagName("td"); var goods = td[0].innerHTML; var des = td[1].innerHTML; var price = td[2].innerHTML; var sele = td[3].innerHTML; //使用insertRow()函数增加行 var tbody=document.getElementById("goods"); var row=tbody.insertRow(); //将获取的对应的元素放入新增加的行中 row.innerHTML = "<td>"+goods+"</td>"+ "<td>"+des+"</td>"+ "<td>"+price+"</td>"+ "<td>"+sele+"</td>"+ "<td align='center'>"+ "<input type='button' value=' - ' id='jian' onclick=jian(this)>"+ "<input id='text' type='text' size='1' value='1' />"+ "<input type='button' value=' + ' id='add' onclick=add(this)>"+"</td>"+ "<td>"+price+"</td>"+ "<td align='center'>"+ "<input type='button' value='删除' class='add1' onclick=dele(this)>"+ "</td>" //计算总价函数 total(); } //删除函数 function dele(dele){ dele.parentNode.parentNode.remove(); total(); } //数量减少函数 function jian(jian){ //获取jian父节点的所有input标签 var inputs = jian.parentNode.getElementsByTagName("input"); //取出放在第二列的数量 amount = inputs[1].value; //转换为整型 var amount1 = parseInt(amount); //最小数量为1 if(amount1 == 1){ return; } inputs[1].value=amount1-1; //根据数量的变化,计算出当前数量对应的金额 var tr = jian.parentNode.parentNode; var tds = tr.getElementsByTagName("td"); var price = parseFloat(tds[2].innerHTML); var sum = price*amount1; tds[5].innerHTML=sum-price; total(); } function add(add){ var inputs = add.parentNode.getElementsByTagName("input"); amount = inputs[1].value; var amount1 = parseInt(amount); inputs[1].value=amount1+1; var tr = add.parentNode.parentNode; var tds = tr.getElementsByTagName("td"); var price = parseFloat(tds[2].innerHTML); var sum = price*amount1; tds[5].innerHTML=sum+price; total(); } //计算总价函数 function total() { var tbody = document.getElementById("goods"); //取出tbody中所有tr标签 var trs = tbody.getElementsByTagName("tr"); var sum = 0; //遍历trs数组,并计算每一个tr标签中金额的总和 for(var i = 0; i < trs.length; i++) { var tds = trs[i].getElementsByTagName("td"); var m = tds[5].innerHTML; sum += parseFloat(m); } var total = document.getElementById("total"); total.innerHTML = sum; } function prepareGallery() { if (!document.getElementsByTagName) return false; if (!document.getElementById) return false; if (!document.getElementById("shopping")) return false; var gallery = document.getElementById("shopping"); var links = gallery.getElementsByTagName("button"); for ( var i=0; i < links.length; i++) { links[i].onclick = function() { return addr(this); } } } function addLoadEvent(func) { var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = func; } else { window.onload = function() { oldonload(); func(); } } } addLoadEvent(prepareGallery); CSS样式表
* { margin: 0px; padding: 0px; } body{ text-align: center; } table, td, td { border: 1px solid #000000; font-size: 10px; } table { display: block; } img { float: left; } tr { text-align: center; } #box { width: 900px; height: 1500px; border: 1px solid white; margin-top: 20px; margin-left: 300px; } #shopping { float: left; text-align: center; border-collapse: collapse; } #head { height: 20px; background: #F0FFFF; } #header{ color: gold; letter-spacing: 0; text-shadow: 0px 1px 0px #999, 0px 2px 0px #888, 0px 3px 0px #777, 0px 4px 0px #666, 0px 5px 0px #555, 0px 6px 0px #444, 0px 7px 0px #333, 0px 8px 7px #001135 } } .add{ height: 30px; text-align: center; width: 100px; border-radius: 5px; cursor: pointer; } .add:hover{ -webkit-border-radius: 25px; -moz-border-radius: 25px; border-radius: 25px; } .add1{ height: 30px; text-align: center; width: 50px; border-radius: 5px; cursor: pointer; } .add1:hover{ -webkit-border-radius: 25px; -moz-border-radius: 25px; border-radius: 25px; } .select{ cursor: pointer; } .photos{ height: 100px; width: 100px; } .describe{ padding: 5px; text-align: left; } .goods { padding: 5px; text-align: left; } .total { color: #ff0000; font-weight: 700; } 运行后的样式如下图


基于HTML的购物车模型的代码设计的更多相关文章

  1. 基于RBAC模型的权限设计:如何设计系统权限体系?

    一.什么是RABC RBAC(基于角色的权限控制)模型的核心是在用户和权限之间引入了角色的概念.取消了用户和权限的直接关联,改为通过用户关联角色.角色关联权限的方法来间接地赋予用户权限(如下图),从而 ...

  2. 基于UDP的客户端和服务器端的代码设计

    实验平台 linux 实验内容 编写UDP服务器和客户端程序,客户端发送消息,服务器接收消息,并打印客户端的IP地址和端口号. 实验原理 UDP是无需连接的通信,其主要实现过程如下: 同样,我们可以按 ...

  3. 浅谈PHP代码设计结构

    浅谈PHP代码设计结构 您的评价:       还行  收藏该经验       coding多年,各种代码日夜相伴,如何跟代码友好的相处,不光成为职业生涯的一种回应,也是编写者功力的直接显露. 如何看 ...

  4. 基于jQuery加入购物车飞入动画特效

    基于jQuery加入购物车飞入动画特效.这是一款电商购物网站常用的把商品加入购物车代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div id="main& ...

  5. 基于ESP32的智能家居管理系统的设计与实现

    基于ESP32的智能家居管理系统的设计与实现 ESP32的智能家居管理系统访问链接: https://www.cnblogs.com/easyidea/p/13101165.html 一.需求分析 1 ...

  6. .NET - 基于事件的异步模型

    注:这是大概四年前写的文章了.而且我离开.net领域也有四年多了.本来不想再发表,但是这实际上是Active Object模式在.net中的一种重要实现方法,因此我把它掏出来发布一下.如果该模型有新的 ...

  7. 基于 Angularjs&Node.js 云编辑器架构设计及开发实践

    基于 Angularjs&Node.js 云编辑器架构设计及开发实践 一.产品背景 二.总体架构 1. 前端架构 a.前端层次 b.核心基础模块设计 c.业务模块设计 2. Node.js端设 ...

  8. 基于特定领域国土GIS应用框架设计及应用

              基于特定领域国土GIS应用框架 设计及应用              何仕国 2012年8月16日   摘要: 本文首先讲述了什么是框架和特定领域框架,以及与国土GIS 这个特定领 ...

  9. word2vec 中的数学原理具体解释(五)基于 Negative Sampling 的模型

      word2vec 是 Google 于 2013 年开源推出的一个用于获取 word vector 的工具包,它简单.高效,因此引起了非常多人的关注. 因为 word2vec 的作者 Tomas ...

随机推荐

  1. PHP编程20大效率要点

    1.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍. 2.$row[’id’] 的速度是$row[id]的7倍. 3.echo 比 print 快,并且使用ech ...

  2. 2019-11-7:sql注入防御,webshell概念,学习笔记

    sql注入防护GPC,magic_quotes_gpc函数在php中的作用是判断解析用户提示的数据,如包括有:post.get.cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特 ...

  3. 2019-11-4:渗透测试,bypass学习,笔记

    编码方式过wafurl编码,针对特殊情况可以两次URL编码十六进制编码,针对某些数据,如特殊字符,特殊字符串等unicode编码,使用两个字节编码一个字符,高位不足使用0填充单引号:%u0027.%u ...

  4. 驰骋工作流系统-Java共工作流引擎配置定时任务

    关键词:工作流定时任务  流程引擎定时任务设置  工作流系统定时任务配置  开源工作流引擎 开源工作流系统 一.定时任务的作用 发送邮件,发送短信. 处理节点自动执行的任务.比如:一个节点的待办工作是 ...

  5. day02_Requests模块

    1.anaconda的安装 1.1 .安装可执行程序 1.2 .配置环境变量 ​ 根据环境变量的先后顺序去查找可执行程序文件,如果查找到就执行,如果查找不到就报错. ​ anaconda主要配置: ​ ...

  6. 设计模式之建造者模式--PHP

    建造者模式:将一个负责对象的构建与它的表示分离,使得同样的构建过程有不同的表示.建造者模式是一步一步创建负责的对象,它允许开发者只通过指定对象的类型和内容就可以创建它们.开发者不需要知道具体的构造细节 ...

  7. Spring Boot2 系列教程(二十八)Spring Boot 整合 Session 共享

    这篇文章是松哥的原创,但是在第一次发布的时候,忘了标记原创,结果被好多号转发,导致我后来整理的时候自己没法标记原创了.写了几百篇原创技术干货了,有一两篇忘记标记原创进而造成的一点点小小损失也能接受,不 ...

  8. 前端vue实现pdf文件的在线预览

    3.前端vue实现pdf文件的在线预览 我是通过 <iframe> 标签就可以满足我工作的 pdf预览需求 如果<iframe> 无法满足需求 , 可以使用pdf.js这个插件 ...

  9. 【Android - 进阶】之Drawable简介

    Drawable是什么?Android给我们的解释是:“A general abstraction for 'something that can be drawn'.”,翻译过来就是:对于可以绘制的 ...

  10. R 语言学习笔记(3)—— 基础绘图

    R 中图形的概念 在 R 中图,就像 photoshop 中的图层一样,每一个元素都是层层向上延展构建的,最终形成了我们视觉上所形成的平面图形.这些元素包含了常见的图形的标题(title).坐标轴(a ...