JavaScript实现的购物车效果可以运用在好多地方_javascript技巧
程序员文章站
2022-05-18 18:01:58
...
JavaScript实现的购物车效果,当然这个效果可以运用在好多地方,比如好友的选择,人力资源模块,计算薪资,人员的选择等等。下面看类似某种购物车的效果图:
code:
goodsCar.js:这个js写成了一个单独的文件。主要是控制上面的列表显示的。
window.onload=function(){
initStore();
};
var goods=["火腿","美女","御姐","火星一日游","跑车"];
//==================为什么要定义一个临时存储区要想清楚哦=============
var temps=[];//临时存储
//初始化仓库select 添加内容
function initStore(){
var select_store=document.getElementById("select_store");
for(var x=0;x{
//创建option对象
var optionNode=document.createElement("option");
optionNode.innerHTML=goods[x];
select_store.appendChild(optionNode);
}
}
//------------------------------------
function selectGoods(){
//获取store的select列表对象
var out_store=document.getElementById("select_store");
//获取我的商品的select列表对象
var in_store=document.getElementById("select_my");
moveGoods(in_store,out_store);
}
function deleteGoods(){
//1.记录下要移动的产品
var in_store=document.getElementById("select_store");
var out_store=document.getElementById("select_my");
moveGoods(in_store,out_store);
}
/*
* 移动商品:
1.inSotre:将商品移入仓库
2.outStore:将商品移出仓库
*/
//移动
function moveGoods(inStore,outStore){
//===============清空数组缓存==================
temps=[];
//循环获取store中的所有列表项
for(var x=0;x{
var option=outStore.options[x];
//将被选中的列表项添加到临时数组中存储
if(option.selected){
temps.push(option);//临时数组中添加数据,为了避免重复,数组缓存要清空
}
}
//2.在store列表中删除已经选中的物品
//3.在购物车中添加已经选择的产品
for(var x=0;x{
//每一个节点都只有一个父节点
//先删除后添加
outStore.removeChild(temps[x]);
//添加
inStore.appendChild(temps[x]);
}
}
下面是主文件;
Insert title here
//*/
var divNode =document.createElement("div");
orderAreaDiv.appendChild(divNode);
var inputMyOrder=document.createElement("input");
inputMyOrder.setAttribute("type","checkbox");
inputMyOrder.setAttribute("name","myorder");
divNode.appendChild(inputMyOrder);
var spanNode=document.createElement("span");
//随机生成一个50到100的随机数
var price=Math.floor(Math.random()*50+50);
inputMyOrder.value=price;
spanNode.innerHTML=selectedGoods[x]+" "+price;
divNode.appendChild(spanNode);
//inputMyOrder.appendChild(spanNode);错误,因为span和input是同级元素
//生组装好的divNode添加到 orderlist中
var order_list = document.getElementById("order_list");
order_list.appendChild(divNode);
}
}
/*
* 再生成的订单中仍然可以选择哪些订单是准备付款的,然后进行付款
三种选择方式:全选:1,不选:0,反选:2;checkbox自己的功能可以多选
*/
function mySelect(arg){
//getElementsByName:根据 NAME 标签属性的值获取对象的集合。
var orders = document.getElementsByName("myorder");
//在写代码的过程中错误的运用了下面这一句话
//getElementsByTagName:获取基于指定元素名称的对象集合。
//var orders=document.getElementsByTagName("myorder");
for(var x=0;xvar order=orders[x];
if(arg=="1"){
order.checked=true;
}
else if(arg=="0"){
order.checked=false;
}
else if(arg=="2"){
order.checked=!order.checked;
}
}
}
//结账买单,这里面用对话款弹出的所有商品的金额做演示
function payMoney(){
var orders = document.getElementsByName("myorder");
//总价
var sum=0;
for(var x=0;xvar order = orders[x];
if(order.checked){
//确定要买的。
sum=sum+Number(order.value);
}
}
alert("您看看您是不是要支付"+sum+"元");
}
code:
goodsCar.js:这个js写成了一个单独的文件。主要是控制上面的列表显示的。
复制代码 代码如下:
window.onload=function(){
initStore();
};
var goods=["火腿","美女","御姐","火星一日游","跑车"];
//==================为什么要定义一个临时存储区要想清楚哦=============
var temps=[];//临时存储
//初始化仓库select 添加内容
function initStore(){
var select_store=document.getElementById("select_store");
for(var x=0;x
//创建option对象
var optionNode=document.createElement("option");
optionNode.innerHTML=goods[x];
select_store.appendChild(optionNode);
}
}
//------------------------------------
function selectGoods(){
//获取store的select列表对象
var out_store=document.getElementById("select_store");
//获取我的商品的select列表对象
var in_store=document.getElementById("select_my");
moveGoods(in_store,out_store);
}
function deleteGoods(){
//1.记录下要移动的产品
var in_store=document.getElementById("select_store");
var out_store=document.getElementById("select_my");
moveGoods(in_store,out_store);
}
/*
* 移动商品:
1.inSotre:将商品移入仓库
2.outStore:将商品移出仓库
*/
//移动
function moveGoods(inStore,outStore){
//===============清空数组缓存==================
temps=[];
//循环获取store中的所有列表项
for(var x=0;x
var option=outStore.options[x];
//将被选中的列表项添加到临时数组中存储
if(option.selected){
temps.push(option);//临时数组中添加数据,为了避免重复,数组缓存要清空
}
}
//2.在store列表中删除已经选中的物品
//3.在购物车中添加已经选择的产品
for(var x=0;x
//每一个节点都只有一个父节点
//先删除后添加
outStore.removeChild(temps[x]);
//添加
inStore.appendChild(temps[x]);
}
}
下面是主文件;
复制代码 代码如下:
//*/
var divNode =document.createElement("div");
orderAreaDiv.appendChild(divNode);
var inputMyOrder=document.createElement("input");
inputMyOrder.setAttribute("type","checkbox");
inputMyOrder.setAttribute("name","myorder");
divNode.appendChild(inputMyOrder);
var spanNode=document.createElement("span");
//随机生成一个50到100的随机数
var price=Math.floor(Math.random()*50+50);
inputMyOrder.value=price;
spanNode.innerHTML=selectedGoods[x]+" "+price;
divNode.appendChild(spanNode);
//inputMyOrder.appendChild(spanNode);错误,因为span和input是同级元素
//生组装好的divNode添加到 orderlist中
var order_list = document.getElementById("order_list");
order_list.appendChild(divNode);
}
}
/*
* 再生成的订单中仍然可以选择哪些订单是准备付款的,然后进行付款
三种选择方式:全选:1,不选:0,反选:2;checkbox自己的功能可以多选
*/
function mySelect(arg){
//getElementsByName:根据 NAME 标签属性的值获取对象的集合。
var orders = document.getElementsByName("myorder");
//在写代码的过程中错误的运用了下面这一句话
//getElementsByTagName:获取基于指定元素名称的对象集合。
//var orders=document.getElementsByTagName("myorder");
for(var x=0;x
if(arg=="1"){
order.checked=true;
}
else if(arg=="0"){
order.checked=false;
}
else if(arg=="2"){
order.checked=!order.checked;
}
}
}
//结账买单,这里面用对话款弹出的所有商品的金额做演示
function payMoney(){
var orders = document.getElementsByName("myorder");
//总价
var sum=0;
for(var x=0;x
if(order.checked){
//确定要买的。
sum=sum+Number(order.value);
}
}
alert("您看看您是不是要支付"+sum+"元");
}
| | |