纯手写的原生js购物车 (不要在意布局)

<!DOCTYPE html>
<html>

  <head>
    <title></title>
    <meta charset="utf-8" />
    <style type="text/css">
    	*{margin: 0; padding: 0 }
    	#table{ border-collapse:collapse; border:none; position: absolute; left: 200px; top: 100px; }
    	th,td{ border: 1px solid darkblue; cell-padding }
    	tr:hover{ background-color: skyblue; }
    	td>a{ cursor: pointer; }
    	td>img{ width: 200px; height: 100px; }
    	.jian,.jia{ width: 10px; height: 20px; cursor: pointer; display: inline-block; background-color: lightgray; }
    </style>
   </head>
  <body>
    <table id="table">
      <thead>
        <tr>
          <th>
            <input type="checkbox" name="" id="checkall">全选</th>
          <th>商品</th>
          <th>单价</th>
          <th>数量</th>
          <th>小计</th>
          <th>操作</th></tr>
      </thead>
      <tbody>
        <tr>
          <td>
            <input type="checkbox" name="" class="check"></td>
          <td class="pd">
            <img src="http://st.depositphotos.com/thumbs/1024381/image/2170/21708633/api_thumb_450.jpg">
            <span>妹子</span></td>
          <td class="danjia">10</td>
          <td>
            <em class="jian"></em>
            <input type="text" value="1" class="calc">
            <i class="jia">+</i></td>
          <td class="totle">10</td>
          <td>
            <a class="del">删除</a></td>
        </tr>
        <tr>
          <td>
            <input type="checkbox" name="" class="check"></td>
          <td class="pd">
            <img src="http://st.depositphotos.com/thumbs/1024381/image/2170/21708633/api_thumb_450.jpg">
            <span>妹子</span></td>
          <td class="danjia">10</td>
          <td>
            <em class="jian"></em>
            <input type="text" value="1" class="calc">
            <i class="jia">+</i></td>
          <td class="totle">10</td>
          <td>
            <a class="del">删除</a></td>
        </tr>
        <tr>
          <td>
            <input type="checkbox" name="" class="check"></td>
          <td class="pd">
            <img src="http://st.depositphotos.com/thumbs/1024381/image/2170/21708633/api_thumb_450.jpg">
            <span>妹子</span></td>
          <td class="danjia">10</td>
          <td>
            <em class="jian"></em>
            <input type="text" value="1" class="calc">
            <i class="jia">+</i></td>
          <td class="totle">10</td>
          <td>
            <a class="del">删除</a></td>
        </tr>
        <tr>
          <td>
            <input type="checkbox" name="" class="check"></td>
          <td class="pd">
            <img src="http://st.depositphotos.com/thumbs/1024381/image/2170/21708633/api_thumb_450.jpg">
            <span>妹子</span></td>
          <td class="danjia">10</td>
          <td>
            <em class="jian"></em>
            <input type="text" value="1" class="calc">
            <i class="jia">+</i></td>
          <td class="totle">10</td>
          <td>
            <a class="del">删除</a></td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td></td>
          <td id="count">0</td>
          <td id="allin"></td>
          <td>结算</td></tr>
      </tbody>
    </table>
  </body>

</html><script type="text/javascript">
	var tr=document.getElementsByTagName(‘tr‘);
	var jian=document.getElementsByClassName(‘jian‘);
	var jia=document.getElementsByClassName("jia");
	var calc=document.getElementsByClassName("calc");
	var danjia=document.getElementsByClassName("danjia");
	var totle=document.getElementsByClassName("totle");
	var checkmax=document.getElementById("checkall");
	var check=document.getElementsByClassName("check");
	var count=document.getElementById("count");
	var a=document.getElementsByClassName("del");
	for(var i=0;i<tr.length;i++){
		(function(index){
			tr[index].addEventListener("click",function(e){
				var target=e.target;
				if(target.nodeName=="I"){
					var calcNumber=calc[index-1].value*1;
				calc[index-1].value=calcNumber+1;
				jian[index-1].innerHTML="-";
				totle[index-1].innerHTML=danjia[index-1].innerHTML*calc[index-1].value;
				count.innerHTML=counter()
			AIO()
				}
			})
		})(i)

	}
	for(var i=0;i<tr.length;i++){
		(function(index){
					tr[index].addEventListener("click",function(e){
						console.log(true)
						var target=e.target;
				if(target.nodeName=="EM"){
			var calcNumber=calc[index-1].value*1;
			if(calcNumber<=1){
				calc[index-1].value=1;
				jian[index-1].innerHTML="";
				return false;
			}
			else{
				calc[index-1].value=calcNumber-1;
			totle[index-1].innerHTML=danjia[index-1].innerHTML*calc[index-1].value;
			count.innerHTML=counter()
			AIO()
			}
		}
		},0)
		})(i)
	}
	for(var i=0;i<a.length;i++){
		(function(index){
			a[index].addEventListener("click",function(){
				var p=this.parentNode.parentNode;
				var q=p.parentNode;
				q.removeChild(p);
				count.innerHTML=counter();
				AIO();
			},0)
		})(i)
	}
	checkall.onclick=function(){
			for(i in check){
				if(checkall.checked){
					check[i].checked=true
				}else{
					check[i].checked=false
				}
			}
			count.innerHTML=counter()
			AIO()
		}
	for(var i=0;i<check.length;i++){
		(function(title){
			check[title].onclick=function(){
				for(i in check){
					if (checkIf()) {
						checkall.checked=true;
					}else{
						checkall.checked=false;
					}
				}
				count.innerHTML=counter()
				AIO()
			}
		})(i)
	}
	function checkIf(){
	for(var i=0;i<check.length;i++){
		if(check[i].checked==false){
			return false
		}
	}
	return true
}
	function counter(){
		var count=0;
		for(var i=0;i<check.length;i++){
			if (check[i].checked) {
				count+=1*calc[i].value
			}
		}
		return count;
	}
	function AIO(){
		var money=0;
		for(var i=0;i<check.length;i++){
			if (check[i].checked) {
				money+=totle[i].innerHTML*1
			}
		}
		document.getElementById("allin").innerHTML=money
	}
</script>

  有个小bug还没解决

时间: 2024-10-12 08:13:52

纯手写的原生js购物车 (不要在意布局)的相关文章

vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件

vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件/库 一提到移动端的下拉刷新上拉翻页,你可能就会想到iScroll插件,没错iScroll是一个高性能,资源占用少,无依赖,多平台的javascript滚动插件.iScroll不仅仅是 滚动.它可以处理任何需要与用户进行移动交互的元素.在你的项目中包含仅仅4kb大小的iScroll,你的项目便拥有了滚动,缩放,平移,无限滚动,视差滚动,旋转功能.iScroll的强大毋庸置疑,本人也非常欢迎大家使用iScr

简易-五星评分-jQuery纯手写

超级简单的评分功能,分为四个步骤轻松搞定: 第一步: 引入jquery文件:这里我用百度CDN的jquery: <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> 第二步: 写HTML代码:这里的星星我用的是符号的星星,也可以做成图片,用2张背景图片进行切换: 1 <div class="score_star"> 2 <i

纯手写wcf代码,wcf入门,wcf基础教程

<pre name="code" class="cpp">/* 中颖EEPROM,使用比较方便,但有个注意点,就是每次无论你写入 什么数据或者在哪个地址写数据,都需要将对 对应的块擦除,擦 除后才能写入成功. */ #define SSPWriteFlag 0x5A #define SSPEraseFlag 0xA5 //数据区 扇形区1 #define ADDR_START1 (uint16)0x100 //数据存储区起始地址 #define ADDR

springmvc 动态代理 JDK实现与模拟JDK纯手写实现。

首先明白 动态代理和静态代理的区别: 静态代理:①持有被代理类的引用  ② 代理类一开始就被加载到内存中了(非常重要) 动态代理:JDK中的动态代理中的代理类是动态生成的.并且生成的动态代理类为$Proxy0 静态代理实例1.创建一个接口: package proxy; public interface People { public void zhaoduixiang()throws Throwable; } 2.创建一个实现类,张三,张三能够吃饭,张三可以找对象 package proxy;

SQL纯手写创建数据库到表内内容

建表啥的只点点鼠标,太外行了,不如来看看我的纯手写,让表从无到有一系列:还有存储过程临时表,不间断的重排序: 一:建数据库 1create Database Show 2 on 3 primary 4 ( 5 name= Show_data , 6 filename= 'C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\Show.mdf' , 7 size=10MB, 8 maxsize=UNLIMITED,

qt之旅-1纯手写Qt界面

通过手写qt代码来认识qt程序的构成,以及特性.设计一个查找对话框.下面是设计过程 1 新建一个empty qt project 2 配置pro文件 HEADERS += Find.h QT += widgets SOURCES += Find.cpp main.cpp 3 编写对话框的类 代码如下: //Find.h #ifndef FIND_H #define FIND_H #include <QDialog> class QCheckBox; class QLabel; class QL

纯手写SpringBoot框架之注解方式启动SpringMVC容器

使用Java语言创建Tomcat容器,并且通过Tomcat执行Servlet,接下来,将会使用Java语言在SpringBoot创建内置Tomcat,使用注解方式启动SpringMVC容器. 代码实现.1.pom.xml文件,需要依赖的jar包. <dependencies> <!--Java语言操作Tomcat--> <dependency> <groupId>org.apache.tomcat.embed</groupId> <arti

纯手写分页控件CSS+JS+SQL

Asp.net中虽然用DataPager配合ListView可以实现分页显示,但是有时候由于开发环境等问题不能用到DataPager控件,那么自己手工写一个分页控件就很有必要了,当然,最重要的是通用性. 首先,来看一下我的分页控件的显示效果: 简单说明:红底色的为当前页,白底红字的是选择新的页,共有1236页,默认从第1页开始显示,分页行长度含“……”共11格,有全显示,单边省略和两边省略三种模式. 当你仔细看完上图的显示效果并理解其分页的相应变化后,我们就要开始制作这个分页了:) 第一步)获取

只显示年月的js时间控件 纯手写

<style> #date { text-align: center; } .td { cursor: pointer; } </style> <script> function GetDate() { var date = new Date(); var year = date.getYear(); var month = date.getMonth(); var str = ''; str += '<table id="date">'