全选 反选 批量删除 计算总价 隔行换色
2018-03-26 15:35
281 查看
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="utf-8" /> | |
<title></title> | |
<script src="js/jquery-3.2.1.min.js" type="text/javascript" charset="utf-8"></script> | |
<style type="text/css"> | |
ul{ | |
list-style-type: none; | |
} | |
.tip{ | |
color: red; | |
} | |
</style> | |
</head> | |
<body> | |
<fieldset id=""> | |
<legend>添加商品</legend> | |
<ul> | |
<li>商品名称:<input type="text" id="sname" value="大红袍" /><span id="tip_name" class="tip"></span> </li> | |
<li>商品价格:<input type="text" id="sprice" value="120"/><span id="tip_price" class="tip"></span> </li> | |
<li>商品数量:<input type="number" id="snum" value="2"/><span id="tip_num" class="tip"></span> </li> | |
<li>商品类型:<select><option>茶叶</option><option>饮料</option></select><span id="tip_type"></span> </li> | |
<li><input type="button" id="btn_ok" value="确定"/></li> | |
</ul> | |
</fieldset> | |
<div> | |
<div> | |
<button id="btn_all">全选</button> | |
<button id="btn_reverse">返选</button> | |
<button id="btn_delall">批量删除</button> | |
</div> | |
<table border="1" cellspacing="0" cellpadding="0"> | |
<thead style="background: gray;"> | |
<tr> | |
<td>编号</td> | |
<td>商品名称</td> | |
<td>商品价格</td> | |
<td>商品数量</td> | |
<td>商品类别</td> | |
<td>小计</td> | |
<td>删除</td> | |
</tr> | |
</thead> | |
<tbody> | |
</tbody> | |
</table> | |
<div> | |
<span id="stotal">商品总价为:¥0元</span> | |
</div> | |
</div> | |
<script type="text/javascript"> | |
function del(obj){//obj是 js对象 parent() 是 jquery方法 | |
// var tr=$(obj).parent().parent();//如果要调用 parent()方法,需要将js对象 转换成jquery对象 | |
// tr.remove(); | |
var tr=obj.parentNode.parentNode; | |
tr.remove(); | |
//重新设置背景色 | |
setTrBg(); | |
//重新计算总价 | |
calTotal(); | |
} | |
//计算总价 | |
function calTotal(){ | |
var total=0; | |
//要得到第一个tr元素中的第6个子元素 | |
var tds=$("tbody tr :nth-child(6)"); | |
tds.each(function(){ | |
//得到td的文本 | |
var v=$(this).text(); | |
total=total+parseFloat(v); | |
}); | |
$("#stotal").html("商品总价为:¥"+total+"元"); | |
} | |
//设置背景色 | |
function setTrBg(){ | |
$("tbody tr:even").css("background","gainsboro");//偶数 | |
$("tbody tr:odd").css("background","white"); | |
} | |
//页面初使化事件中 | |
$(function(){ | |
//添加商品 | |
$("#btn_ok").click(function(){ | |
$(".tip").html("");//清空内容 | |
//1.商品名称大于2位且小于20位 | |
var name=$("#sname").val(); | |
if(!(name.length>2 && name.length<20)){ | |
$("#tip_name").html("*商品名称大于2位且小于20位"); | |
// $("#tip_name").css("color","red"); | |
return; | |
} | |
//2.商品价格不能为空 | |
var price=$("#sprice").val(); | |
if(price==""){ | |
$("#tip_price").html("*商品价格不能为空"); | |
return; | |
} | |
//3.商品数量必须大于0 | |
var num=$("#snum").val(); | |
//将一个字符串转换为int类型,使用parseInt() | |
if(parseInt(num)<=0){ | |
$("#tip_num").html("*商品数量必须大于0"); | |
return; | |
} | |
//添加商品 | |
addShop(); | |
//计算总价 | |
calTotal(); | |
//设置背景色 | |
setTrBg(); | |
}); | |
function addShop(){ | |
var name=$("#sname").val(); | |
var price=$("#sprice").val(); | |
var num=$("#snum").val(); | |
//得到类型--注意要加空格 | |
var type=$("select :selected").text(); | |
//小计 | |
var count=parseFloat(price)*parseInt(num); | |
//拼接tr | |
var newtr="<tr>" | |
+"<td><input type='checkbox'/></td>" | |
+"<td>"+name+"</td>" | |
+"<td>"+price+"</td>" | |
+"<td>"+num+"</td>" | |
+"<td>"+type+"</td>" | |
+"<td>"+count+"</td>" | |
+"<td><button onclick='del(this)'>删除</button></td>" | |
+"</tr>"; | |
//添加到table表中 | |
$("tbody").append(newtr); | |
} | |
$("#btn_all").click(function(){ | |
var ches=$("input[type='checkbox']"); | |
ches.each(function(){ | |
$(this).prop("checked",true);//设置为选中状态 | |
}); | |
}); | |
$("#btn_reverse").click(function(){ | |
//选择中当前所有选中的checkbox | |
var ches=$("input:checked"); | |
ches.each(function(){ | |
$(this).prop("checked",false);//设置为不选中 | |
}); | |
}); | |
//批量删除 | |
$("#btn_delall").click(function(){ | |
var ches=$("input:checked"); | |
ches.each(function(){ | |
var t=$(this).parent().parent(); | |
t.remove(); | |
}); | |
//重新设置背景色 | |
setTrBg(); | |
//重新计算总价 | |
calTotal(); | |
}); | |
}); | |
</script> | |
</body> | |
</html> | |
相关文章推荐
- 全选,数字增加,减少,减少到1时删除数据,计算总价,删除
- 实现购物车结算功能:批量/全部删除,全选,单价/总价,数量增减,页面隐藏/显示
- HTML angular购物车:加减按钮改变数量+全选+低于1时提示删除商品+计算所有商品总价+清空购物车+单独删除+输入内容小于1时,自动变为1+反选
- 实现购物车结算功能:批量和全部删除,全选和反选,单价和总价,数量增减,页面隐藏和显示
- 隔行换色、注册功能、全选反选、两级联动、删除、批量删除等(周考2)
- 实现购物车结算功能:批量/全部删除,全选,单价/总价,数量增减,页面隐藏/显示
- Angularjs 增删改查全选反选批量删除总价总数
- RecyclerView单选框删除条目,全选删除,Recyclerview 实现多选,单选,全选,反选,批量删除的步骤 1.在Recyclerview布局中添加上底部的全选和反选按钮,删除按钮,和计算
- HTML angular购物车:加减按钮改变数量+全选+低于1时提示删除商品+计算所有商品总价+清空购物车+单独删除+输入内容小于1时,自动变为1+反选
- 购物车之 全选 反选 批量删除 包邮 总价
- 实现购物车结算功能:批量和全部删除,全选和反选,单价和总价,数量增减,页面隐藏和显示
- JavaScript--全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)
- jquery table表格添加删除数据(含批量删除,全选全不选和简单的表单验证)
- Android ListView长按弹出CheckBox,实现全选,反选,批量删除功能
- jQuery实现购物车多物品数量的加减+总价+删除计算
- angularjs checkbox全选单选批量删除
- JavaScript--全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)
- Javascript Jquery 复选框的全选、单选与反选、批量删除
- AngularJS表格数据全选反选批量删除,删除的数据添加到数组里
- 商品订单(增删改查):新增订单;批量删除,发货;模糊查询,下拉菜单内容过滤(含时间);全选反选,列名排序