前端学习(2338):记录解决问题的一次

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><style type="text/css">#f {font-size: 50px;font-family: 幼圆;}#btn {width: 50px;height: 30px;opacity: 0.5;background-color: palegoldenrod;}#btn:hover {background-color: burlywood;opacity: 1;}.fonts {line-height: 200px;float: right;font-family: 幼圆;font-size: 20px;}.fontss {line-height: 200px;font-size: 30px;text-align: center;font-family: 幼圆;}.fontsss {line-height: 200px;font-size: 30px;font-family: 幼圆;}.trs:hover {background-color: steelblue;}.a {float: left;text-align: center;line-height: 20px;}#wind {width: 100px;height: 50px;}#last-delete {width: 60px;height: 40px;}#num {color: red;}#main-num {color: red;}.delete-btn:hover {background-color: brown;}.divbtn {width: 25px;height: 17px;background-color: lightsteelblue;}.minus {font-weight: bold;font-size: 12px;text-align: center;}.add {font-weight: bold;font-size: 12px;text-align: cente}#wind:hover {background-color: seagreen;}.delete-btn {height: 100px;width: 90px;opacity: 1;}.td {position: relative;}.foodsbtn {background-color: lightsteelblue;}#aaa {font-size: 60px;font-family: 幼圆;text-align: center;}</style>
</head><body bgcolor="#B0C4DE"><button id="btn">返回</button><center><div id="as"><p id="aaa">◾购物车◾</p></div><div id="fater"><table border="1"><tr bgcolor="steelblue"><th><input type="checkbox" class="checkall">全选</th><th width="600 px" height="30px">商品</th><th width="200px" height="30px">单价</th><th width="250px" height="30px">数量</th><th width="100px" height="30px">小计</th><th width="100px" height="30px">操作</th><tr class="trs"><td><input type="checkbox" class=" foodsbtn"></td><td width="600px" height="260px" valign="center "><img src="img/伍六七.png" width="400px" height=100%><p class="fonts">特价伍六七</p></td><td width="200px" height="260px"><p class="fontss">99</p></td><td width="250px" height="260px"><center><span class="minus" style="cursor:pointer">➖</span><input type="text" class="divbtn" value="1" /><span class="add" style="cursor:pointer" value="1">➕</span></center></td><td width="100px" height="260px"><p class="fontsss">0</p></td><td width="100px" height="260px"><p class="fontsss"><button class="delete-btn">删除</button></p></td></tr><tr class="trs"><td><input type="checkbox" class="foodsbtn"></td><td width="600px" height="260px"><img src="img/姜主任.png" width="400px" height=100%><p class="fonts">新品姜主任</p></td><td width="200px" height="260px"><p class="fontss">599</p></td><td width="250px" height="260px"><center><span class="minus" style="cursor:pointer">➖</span><input type="text" class="divbtn" value="1" /><span class="add" style="cursor:pointer">➕</span></center></td><td width="100px" height="260px"><p class="fontsss">0</p></td><td width="100px" height="260px"><p class="fontsss"><button class="delete-btn">删除</button></p></td></tr><tr class="trs"><td><input type="checkbox" class="foodsbtn"></td><td width="600px" height="260px"><img src="img/梅花十三1.png" width="400px" height=100%><p class="fonts">特价梅花十三</p></td><td width="200px" height="260px"><p class="fontss">199</p></td><td width="250px" height="260px"><center><span class="minus" style="cursor:pointer">➖</span><input type="text" class="divbtn" value="1" /><span class="add" style="cursor:pointer">➕</span></center></td><td width="100px" height="260px"><p class="fontsss">0</p></td><td width="100px" height="260px"><p class="fontsss"><button class="delete-btn">删除</button></p></td></tr><tr class="trs"><td><input type="checkbox" class="foodsbtn"></td><td width="600px" height="260px"><img src="img/梅花十三2.png" width="400px" height=100%><p class="fonts">正品梅花十三</p></td><td width="200px" height="260px"><p class="fontss">699</p></td><td width="250px" height="260px"><center><span class="minus" style="cursor:pointer">➖</span><input type="text" class="divbtn" value="1" /><span class="add" style="cursor:pointer"> ➕</span></center></td><td width="100px" height="260px"><p class="fontsss">0</p></td><td width="100px" height="260px"><p class="fontsss"><button class="delete-btn">删除</button></p></td></tr><table><tr bgcolor="steelblue"><th width="10px" height="50px"><input type="checkbox" class="checkall"></th><th width="50x" height="50px"><p id="a">全选</p></th><th width="850px" height="20px"><button id="last-delete4">删除</button></th><th width="200px" height="50px">已选商品<span id="num">0</span>件<button id="other"></button></th><th width="100px" height="50px">合计:<span id="main-num">0</span>元</th><th width="100px" height="50px"><button id="wind">结算</button></th></tr></table></table></div></center><script type="text/javascript">//全选var checkall = document.querySelectorAll(".checkall");var foodsbtn = document.querySelectorAll(".foodsbtn");//首先历遍两次for循环,第一次i=1是对各全选第二次i=2是第二个全选,然后判断input的状态(onchange函数的意思是改变input是所触发大的函数。点击input也是改变input)//如果点击input执行函数,经历第一次历遍foodsbtn长度的函数,定义每一个单选按钮,让他们的的单击状态跟这个按钮一样,就是定义onchange的按钮(也就是最外层的函数)//在经历第二次历遍,历遍的是两个全选按钮,让这两个按钮的点击状态跟最外层函数的点击状态一样//判断点击状态,开始经历两次for函数的历遍第一次是全部单选按钮跟最外层的函数点击状态一样,第一次历遍是历遍两个全选按钮,让他跟这个按钮的点击状态一样for (var i = 0; i < checkall.length; i++) {checkall[i].onchange = //this指的是这个function() {for (var i = 0; i < foodsbtn.length; i++) {foodsbtn[i].checked = this.checked;}for (var i = 0; i < checkall.length; i++) {checkall[i].checked = this.checked; //this指的是 }totalprice(); //?????????????????????	}}//设置每个按钮的事件,上面的是设置全选按钮的事件//设置每个单选按钮是否全部选中,全部选中触发全选按钮for (var i = 0; i < foodsbtn.length; i++) {foodsbtn[i].onchange = function() { //给每个按钮分发点击事件,点击每个按钮的时候都要判断一下sum是否等于foodbtn。lengthvar sum = 0;for (var i = 0; i < foodsbtn.length; i++) { //判断单选按钮的点击次数if (foodsbtn[i].checked) {sum++;}}for (var i = 0; i < checkall.length; i++) {checkall[i].checked = sum == foodsbtn.length; //判断单选按钮的点击个数是否等于foodbtn。length}totalprice() //当每个单选按钮点击的时候计算总价和总件数}}//计算总价的函数。这里会多次运用这个函数,随意把他封装起来var num = document.querySelector("#num")var divbtn = document.querySelectorAll(".divbtn");var fontss = document.querySelectorAll(".fontss");var main = document.querySelector("#main-num");function totalprice() {var sum = 0;var piece = 0;for (var i = 0; i < foodsbtn.length; i++) {if (foodsbtn[i].checked) {piece = piece + Number(divbtn[i].value);sum = sum + Number(fontss[i].innerHTML);}}num.innerHTML = piece;main.innerHTML = sum;}//设置高级按钮var add = document.querySelectorAll(".add");var minus = document.querySelectorAll(".minus");for (var i = 0; i < add.length; i++) {add[i].value = i;add[i].onclick = function() {console.log(this.value);console.log(divbtn[this.value]);console.log(i);console.log(divbtn[i]);var x = divbtn[this.value].value;x++;divbtn[this.value].value = x;totalprice()}}for (var i = 0; i < minus.length; i++) {minus[i].value = i;minus[i].onclick = function() {var x = divbtn[this.value].value;if (x < 1) {x = 0} else {x--;divbtn[this.value].value = x;totalprice()}}}</script>
</body></html>

运行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/417082.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

apicloud,aliyunlive,测试成功

1.推流 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"maximum-scale1.0,minimum-scale1.0,user-scalable0,widthdevice-width,initial-scale1.0"><ti…

走进netty

三月份开始看公司RPC框架的源码,发现如果要折腾明白,网络通讯这块知识必不可少.于是从如下几点开始逐步研究. 一、基础知识篇 1.Unix下5种I/O模型 Linux的内核将所有外部设备都看作一个文件来操作,对于一个文件的读写操作会调用内核提供的系统命令,返回一个fd(文件描述符),而对…

ZeroC ICE的远程调用框架 ASM与defaultServant,ServantLocator

ASM与defaultServant&#xff0c;ServantLocator都是与调用调度&#xff08;Dispatch&#xff09;相关的。 ASM是ServantManager中的一张二维表_servantMapMap&#xff0c;默认Servant则由_defaultServantMap和_locatorMap两张一维表维护。一个对 象可由这样的字符串指定"…

gdb调试若干问题

1.若干命令速查 file <文件名>&#xff1a;加载被调试的可执行程序文件。因为一般都在被调试程序所在目录下执行GDB&#xff0c;因而文本名不需要带路径。示例&#xff1a;(gdb) file gdb-sample r&#xff1a;Run的简写&#xff0c;运行被调试的程序&#xff0c;也是重启…

java线程中的notifyAll唤醒操作

注意&#xff1a; java中的notifyAll和notify都是唤醒线程的操作&#xff0c;notify只会唤醒等待池中的某一个线程&#xff0c;但是不确定是哪一个线程&#xff0c;notifyAll是针对指定对象里面的所有线程执行唤醒操作&#xff0c;指定对象一旦唤醒成功。则会立即加入线程的资源…

阻止html页面加载,如何防止页面加载重复的JS?

我自己写了一个页面&#xff0c;除了公共部分的页头页脚以外&#xff0c;其余内容都是通过Ajax加载过来的&#xff0c;现在遇到了比较头疼的问题&#xff1a;先说一下我加载的方式$.ajax({type : "GET",url : hrefPage,dataType : html,cache : true, // (warning: t…

IIS的安装与配置

安装IIS 若操作系统中还未安装IIS服务器&#xff0c;可打开“控制面板”&#xff0c;然后单击启动“添加/删除程序”&#xff0c;在弹出的对话框中选择“添加/删除Windows组件”&#xff0c;在Windows组件向导对话框中选中“Internet信息服务&#xff08;IIS&#xff09;”&…

ie11不兼容 html编辑器,ie11兼容性视图护驾浏览网页

安装 ie11 后&#xff0c;原来的在线网页编辑器不能粘贴、也不能插入图片了&#xff0c;有些网站也不能登录&#xff0c;怪不适用的&#xff0c;无奈只能启用ie11兼容模式。把显示或操作不正常的网站添加到兼容性视图后&#xff0c;又可以操作了&#xff0c;好在ie有兼容模式&a…

gitlab用户添加ssh免密钥认证后clone还是要求输入密码

今天在centos 7公网服务器上安装gitlab在配置ssh免密钥时遇到一个奇怪的事&#xff0c;正确添加了本机的公钥到gitlab账户上&#xff0c;进行clone时死活都要你输入密码gitlab使用yum安装的&#xff0c;之前在vmware虚机上的一台centos 7安装也没有这个问题根据这个文章的思路进…

yii源码学习心得

1.通过看源代码&#xff0c;对yii的框架学习有了更多的认识和理解 assets 前端资源文件夹&#xff0c;用于管理css js等前端资源文件等 commands 包含命令行命令&#xff0c;文件为控制器文件 config 应用的配置文件 controllers 控制器文件 mail &#xff08;应用的前后台…

consul删除无效服务

curl http://server_ip:8500/v1/agent/service/deregister/paas-portal-sit-9003 -X PUT 删除无效服务&#xff1a; paas-portal-sit-9003 为服务名称 页面上进入服务详单(/ui/dc1/services/xxx)从这里找 删除无效节点&#xff1a; http://server_ip:8500/v1/agent/force-l…