页面如下图所示

实现添加购物车,数量添加、减少,物品删除,计算金额的功能,麻雀虽小五脏俱全。表格用的是layui框架。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Study</title>
<link rel="stylesheet" type="text/css" href="../layui/css/layui.css" />
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.js"></script>
</head>
<style type="text/css">
h1 {
text-align: center;
font-size: 20px;
margin: 40px 0 20px 0;
font-family: "黑体";
font-weight: bolder;
}

.layui-table {
margin: 0 auto;
width: 60%;
border-collapse: collapse;
}
</style>
<body>
<h1>真划算</h1>
<table class="layui-table">
<colgroup>
<col width="150">
<col width="200">
<col>
</colgroup>
<thead>
<tr>
<th>商品</th>
<th>单价(元)</th>
<th>颜色</th>
<th>库存</th>
<th>好评率</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td>罗技M185鼠标</td>
<td>80</td>
<td>黑色</td>
<td>893</td>
<td>98%</td>
<td align="center">
<input type="button" value="加入购物车" οnclick="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="加入购物车" οnclick="add_shoppingcart(this);" />
</td>
</tr>
<tr>
<td>iphone7手机壳</td>
<td>60</td>
<td>透明</td>
<td>672</td>
<td>99%</td>
<td align="center">
<input type="button" value="加入购物车" οnclick="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="加入购物车" οnclick="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="加入购物车" οnclick="add_shoppingcart(this);" />
</td>
</tr>
</tbody>
</table>
<h1>购物车</h1>
<table class="layui-table">
<colgroup>
<col width="150">
<col width="200">
<col>
</colgroup>
<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" colspan="2"></td>
</tr>
</tfoot>
</table>
<script>
function add_shoppingcart(btn) {   //添加按钮
var tr = btn.parentNode.parentNode;                 //用过btn的父元素的父元素来获取tr
var tds = tr.getElementsByTagName("td");            //获取tr下的每一条td
var name = tds[0].innerHTML;                        //获取td中的第一条数据name
var price = tds[1].innerHTML;                       //获取td中的第二条数据price
var tbody = document.getElementById("goods");       //通过getid方式来获取tbody
var row = tbody.insertRow();                        //通过insertrow讲数据插入到tbody中    
row.innerHTML =                                     //row的内容 
'<td>' + name + '</td>' +                      //标签要用''  对要进行点击的按钮添加  onclick
'<td>' + price + '</td>' +
'<td>' +
'<input type="button" value="-" οnclick="change(this, -1);" style="margin:0 5px;width:12px"/>' +
'<input type="text" size="1" readonly value="1"/> ' +
'<input type="button" value="+" οnclick="change(this, 1);"/>' +
'</td>' +
'<td>' + price + '</td>' +
'<td align="center"><input type="button" value="删除" οnclick="del(this)"/></td>'
total();
}
function del(btn) {   // 删除按钮
var tr = btn.parentNode.parentNode;             //获取tr
tr.parentNode.removeChild(tr);                  //removechild  删除子节点
total();
}
function change(btn, n) {     //数量改变
var inputs = btn.parentNode.getElementsByTagName("input");   //获取input
var amount = parseInt(inputs[1].value);                      //获取input中的value值
if(amount <= 1 && n < 0) {                                   
return;
}
inputs[1].value = amount + n;                         //数量的值为     数量+n
amount = inputs[1].value;                             //amount=amount+n
var tr = btn.parentNode.parentNode;                   //获取tr
var tds = tr.getElementsByTagName("td");              //获取tr中所有的td
var price = parseFloat(tds[1].innerHTML);             //获取amount值   parsenfloat 是一个全局函数将字符串进行解析输出数字 如果开头不是数字 返回nan
var m = price * amount;    //计算价格
tds[3].innerHTML = m;      //金额栏 写入数据
total();
}
function total() {   //计算总价
var tbody = document.getElementById("goods");        //获取购物车的tbody    
var trs = tbody.getElementsByTagName("tr");          //获取tr的数据
var sum = 0;                                       
for(var i = 0; i < trs.length; i++) {               //遍历tr   
var td = trs[i].getElementsByTagName("td");     //获得td的值
var m = td[3].innerHTML;                        //获取td中价格一栏的值
sum += parseFloat(m);                           //相加
}
var total = document.getElementById("total").innerHTML=sum;         //将sum写入到total一栏中
}
</script>
</body>

</html>

购物车原生js简单明了相关推荐

  1. H5原生js简单拼图游戏

    H5原生js简单拼图游戏 演示地址 效果展示 源码 index.html puzzle.css puzzle.js 源码下载 演示地址 链接: 演示地址 效果展示 源码 index.html < ...

  2. 原生js简单实现五指棋

    原生js简单实现五指棋 无聊之时可以玩玩,浏览器直接打开,简单又不失趣味! 如图: 上代码: <div id="bigBackground"><!-- 棋盘水平线 ...

  3. 原生JS简单的无缝自动轮播

    最近在不断的加强巩固js.在学习jq和vue之后发现很多东西其实都是不明所以,有些底层的东西自己不懂,到头来也只是一昧的使用,一直在用别人的东西,对自己的成长帮助也不大. 万丈高楼平地起,基础打扎实了 ...

  4. 原生JS 简单购物车网页

    以下是代码: HTML <!DOCTYPE html> <html lang="en"> <head><meta charset=&quo ...

  5. 原生js简单实现双向数据绑定原理

    根据对象的访问器属性去监听对象属性的变化,访问器属性不能直接在对象中设置,而必须通过 defineProperty() 方法单独定义. 访问器属性的"值"比较特殊,读取或设置访问器 ...

  6. 原生js简单实现定时抢月饼

    早上跟人聊起月饼来,突然就想起了去年阿里的抢月饼事件,顺手写下这个抢月饼脚本. window.onload = function () {//判断时间数字是否小于10并格式化function form ...

  7. 原生js简单抽奖页面

    <!DOCTYPE html> <html> <head><meta charset="UTF-8"><title>抽奖 ...

  8. 工作只用jquery,原生js知道就好了

    前几天公众号有位小伙伴微信上问我说:听朋友说工作中全部用jquery,学好jquery,js只需要知道就好了,是这样的吗? 一听到这种的观点,我只想说:远离这样的朋友,简直误人子弟. 幸好这个公众号的 ...

  9. 原生 JS 实现飘雪效果

    一.前言 大家也许见过到以下场景: 1. 逢年过年或活动日,各大网站(淘宝,京东等)飘着漫天红包: 2. 下雨下雪的时候美团上的外卖地图上会有飘雨飘雪的景象: 3. 手机里的天气背景有电闪雷鸣的效果: ...

最新文章

  1. 程序员笔记|如何编写优雅的Dockerfile
  2. 并发编程(三)原子操作CAS
  3. 如何设计一门语言(十一)——删减语言的功能
  4. 人类染色质开放状态数据库,ATACdb使用介绍
  5. 算法9-5:最大流算法的Java代码
  6. 测试电梯的测试用例_测试用例设计经典面试题
  7. 【Angular 4】组件生命周期钩子
  8. Linux系统给进程绑核
  9. 【python】进程与线程
  10. Linux串口(serial、uart)驱动程序设计
  11. 计算机管理用户u,discuz+uclient 手动提升普通用户至管理员权限网站安全 -电脑资料...
  12. pcl求平面法向量_PCL自动求解平面法向量参数化表示
  13. android 新建桌面文件夹在哪里,添加并管理桌面文件夹
  14. 股票中,什么是市盈率,有什么作用?
  15. Android自定义控件——模拟抛体加速减速效果
  16. Python 爬取懂车帝详情页“全部车型模块信息”!懂车帝就火起来了吗?
  17. 用 turtle 绘制圆形
  18. CSS优先级权重练习
  19. win7系统安装telnet服务器,Win7系统下怎么安装Telnet服务【图文教程】
  20. 将前端网页生成二维码

热门文章

  1. 【内网安全】——内网主机发现
  2. 文件上传保姆级教程(原理,大小马,CTF,防御,绕狗一句话,upload-labs)
  3. 电容器功率密度和能量密度
  4. 2022-2027年中国帆船行业市场全景评估及发展战略规划报告
  5. 苹果cms的php.ini,苹果cms伪静态设置教程
  6. java 媒体框架_Java 媒体框架 之 JMF
  7. 打印出js对象里面的内容
  8. webp文件上传格式转换前端解决方案及php端解决方案
  9. Fisher information解释和数学意义
  10. Android-Q显示白平衡