根据不同选择显示不同单价的逻辑
需求:如图所示,根据不同选择呈现不同单价。
代码:html部分
<div class="box"> <h3>单价:<span id='price' style="color:orangered;">0</span>元/箱</h3> <div class="rongliang"> <p>容量:</p> <span class="small">1000ml</span> <span class="big">1500ml</span> </div> <div class="color"> <p>颜色:</p> <span class="black">黑色</span> <span class="white">白色</span> <span class="opacity">透明色</span> </div> <div class="yinshua"> <p>印刷:</p> <span class="dan">单色印刷</span> <span class="shuang">双色印刷</span> <span class="duo">多色印刷</span> </div> </div>
代码:css 部分(手机端部分样式)
.box{width: 96%;height: 33rem;border: 0.1rem solid gray;margin:0 auto;font-size:1.6rem;} .rongliang,.color,.yinshua{height: 8rem;width: 86%;margin: 0.6rem auto;border: 0.1rem solid gray;padding-left: 1rem;;} .box p{color:rgb(241,104,76)} .box h3{margin-left:1rem;} .small,.big,.black,.white,.opacity,.dan,.shuang,.duo{display:block;width: 7rem;float:left;height:2.5rem;line-height:2.5rem;margin-right:0.8rem;text-align: center;border: 0.1rem solid darkgray;} .clear{clear: both;}
代码:js部分
<script src="js/jquery-1.11.3.min.js" type="text/javascript"></script> <script> function nowPrice (rl,col,ys){ if(rl=='small'&&col=='black'&&ys=='dan'){ $('#price').html(101); }else if(rl=='small'&&col=='black'&&ys=='shuang'){ $('#price').html(102); }else if(rl=='small'&&col=='black'&&ys=='duo'){ $('#price').html(103); }else if(rl=='small'&&col=='white'&&ys=='dan'){ $('#price').html(104); }else if(rl=='small'&&col=='white'&&ys=='shuang'){ $('#price').html(105); }else if(rl=='small'&&col=='white'&&ys=='duo'){ $('#price').html(106); }else if(rl=='small'&&col=='opacity'&&ys=='dan'){ $('#price').html(107); }else if(rl=='small'&&col=='opacity'&&ys=='shuang'){ $('#price').html(108); }else if(rl=='small'&&col=='opacity'&&ys=='duo'){ $('#price').html(109); }else if(rl=='big'&&col=='black'&&ys=='dan'){ $('#price').html(110); }else if(rl=='big'&&col=='black'&&ys=='shuang'){ $('#price').html(111); }else if(rl=='big'&&col=='black'&&ys=='duo'){ $('#price').html(112); }else if(rl=='big'&&col=='white'&&ys=='dan'){ $('#price').html(113); }else if(rl=='big'&&col=='white'&&ys=='shuang'){ $('#price').html(114); }else if(rl=='big'&&col=='white'&&ys=='duo'){ $('#price').html(115); }else if(rl=='big'&&col=='opacity'&&ys=='dan'){ $('#price').html(116); }else if(rl=='big'&&col=='opacity'&&ys=='shuang'){ $('#price').html(117); }else if(rl=='big'&&col=='opacity'&&ys=='duo'){ $('#price').html(118); }else{ console.log('请检查代码是否有误'); } } $('.rongliang,.color,.yinshua').on('click','span',function(){ $(this).css('color','orangered').siblings('span').css('color','black'); }) var choice = {}; $('.rongliang').on('click','span',function(){ var rl = $(this)[0].className; choice.rongliang = rl; console.log(choice); if(choice.rongliang&&choice.color&&choice.cyinshua){ nowPrice(choice.rongliang,choice.color,choice.cyinshua); } }) $('.color').on('click','span',function(){ var col = $(this)[0].className; choice.color = col; console.log(choice); if(choice.rongliang&&choice.color&&choice.cyinshua){ nowPrice(choice.rongliang,choice.color,choice.cyinshua); } }) $('.yinshua').on('click','span',function(){ var ys = $(this)[0].className; choice.cyinshua = ys; console.log(choice); if(choice.rongliang&&choice.color&&choice.cyinshua){ nowPrice(choice.rongliang,choice.color,choice.cyinshua); } }) </script>
主要思路:创建一个对象,点击的时候给它添加属性,分别是rongliang,color,cyinshua,选择不同添加的属性值也不同。每次点击完成后判断这三个属性是否全部存在,当三个属性都存在的时候说明三个值都已经选好了,此时就可以给出单价了。然后写一个函数,根据该对象属性值不同,匹配不同的单价,并显示到页面相应位置。
个人理解,欢迎大家提供不同思路。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)