
本文针对J*aScript购物车数量增减按钮仅对页面中第一个元素生效的问题,提供了一种高效的解决方案。通过统一类名和DOM遍历,避免了为每个元素单独绑定事件的繁琐操作,大幅简化了代码,并提高了可维护性。同时,还指出了原始HTML结构中存在的一个错误,并提供了修正后的代码示例。
在构建动态网页时,经常会遇到需要重复使用的组件,例如购物车中的数量增减按钮。如果为每个组件单独编写J*aScript代码,会导致代码冗余且难以维护。本文将介绍如何使用J*aScript和DOM操作,实现一套通用的数量增减逻辑,使其适用于页面中所有相同的组件,解决“J*aScript购物车数量增减按钮只对第一个元素生效”的问题。
原始代码的问题在于,它使用了带有数字后缀的类名(例如.cart-button1,.added1,.pqt-plus1,.pqt-minus1)来选择元素,并为每个元素单独绑定事件监听器。这使得代码只能操作页面中的第一个购物车组件。即使尝试使用querySelectorAll,由于后续代码仍然依赖于带有数字后缀的变量,也无法正确地为所有组件绑定事件。
为了解决这个问题,我们需要做到以下几点:
以下是修改后的HTML代码:
云从科技AI开放平台
云从AI开放平台
99
查看详情
<div class="d-flex align-items-center pls-moins">
<span class="count-number float-right">
<button type="button" class="btn-sm left dec btn btn-outline-secondary pqt-minus" data-inc="-1">
<i class="feather-minus"></i> -
</button>
<span class="cart-button">
<span class="added">0</span>
</span>
<button type="button" class="btn-sm right inc btn btn-outline-secondary pqt-plus" data-inc="1">
<i class="feather-plus"></i> +
</button>
</span>
</div>
<div class="d-flex align-items-center pls-moins">
<span class="count-number float-right">
<button type="button" class="btn-sm left dec btn btn-outline-secondary pqt-minus" data-inc="-1">
<i class="feather-minus"></i> -
</button>
<span class="cart-button">
<span class="added">0</span>
</span>
<button type="button" class="btn-sm right inc btn btn-outline-secondary pqt-plus" data-inc="1">
<i class="feather-plus"></i> +
</button>
</span>
</div>
<div class="d-flex align-items-center pls-moins">
<span class="count-number float-right">
<button type="button" class="btn-sm left dec btn btn-outline-secondary pqt-minus" data-inc="-1">
<i class="feather-minus"></i> -
</button>
<span class="cart-button">
<span class="added">0</span>
</span>
<button type="button" class="btn-sm right inc btn btn-outline-secondary pqt-plus" data-inc="1">
<i class="feather-plus"></i> +
</button>
</span>
</div>
<div class="d-flex align-items-center pls-moins">
<span class="count-number float-right">
<button type="button" class="btn-sm left dec btn btn-outline-secondary pqt-minus" data-inc="-1">
<i class="feather-minus"></i> -
</button>
<span class="cart-button">
<span class="added">0</span>
</span>
<button type="button" class="btn-sm right inc btn btn-outline-secondary pqt-plus" data-inc="1">
<i class="feather-plus"></i> +
</button>
</span>
</div>以下是修改后的J*aScript代码:
document.querySelectorAll(".btn-sm").forEach(btn => {
btn.addEventListener('click', e => {
let total = e.target.closest('.pls-moins').querySelector('.added');
total.textContent = Math.max(0, parseInt(total.textContent, 10) + parseInt(e.currentTarget.dataset.inc, 10));
});
});代码解释:
通过统一类名、DOM遍历和使用data属性,我们可以编写出通用的J*aScript代码,使其适用于页面中所有相同的购物车组件。这种方法不仅简化了代码,还提高了代码的可维护性和可重用性。在实际开发中,应该尽量避免为每个组件单独编写代码,而是应该寻找通用的解决方案,以提高开发效率和代码质量。
以上就是J*aScript购物车数量增减按钮只对第一个元素生效的解决方案的详细内容,更多请关注其它相关文章!
# 全局变量
# 黔南seo优化公司便宜
# 银川企业网站建设开发
# 名词解释seo sem
# 十堰企业网站推广多少钱
# 南头企业站网站建设
# 辽宁seo外包软件公司
# 网站优化一站式服务
# 企业网站建设营销
# 宁波网站优化技术培训
# 蕲春seo优化多少钱
# 自适应
# 第三方
# javascript
# 使其
# 适用于
# 绑定
# 只对
# 遍历
# 第一个
# 购物车
# 字符串解析
# 点击事件
# html
# java
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
全球各国上班时间表外贸邮件时间
抖音手机分身两个账号怎么切换?分身两个系统是一样的吗?
汽车之家网页版免费登录_汽车之家官网首页直接进入
AO3中文入口稳定分享_AO3官网HTTPS看文详解
京东快递物流信息不更新怎么办_物流停滞原因与处理方法
鼠标没反应了怎么办 无线/有线鼠标失灵的解决方法【详解】
word文档行距怎么调?word文档调行距的操作步骤
如何在mysql中比较InnoDB和MyISAM区别
《随手记》备份数据方法
解决PHP MySQL数据库更新无响应:SQL查询语法错误解析
《撕歌》会员开通方法
电脑桌面图标怎么变大变小_Windows个性化设置第一课【新手入门】
《花瓣》创建专辑方法
在Peewee中处理PostgreSQL记录重复:一站式数据摄取教程
解决SQLAlchemy模型跨文件关联的Linter兼容性指南
PHP实现等比数列:构建数组元素基于前一个值递增的方法
如何用Golang优化微服务间请求性能_Golang 微服务请求性能优化方法
mysql镜像配置如何恢复数据_mysql镜像配置数据恢复详细流程
顺丰快递在线查询系统 顺丰快递官方查单入口
pubmed数据库官方主页_pubmed学术论文查找官网直达
C++中std::thread和std::async的区别_C++并发编程与线程与异步任务比较
晓晓优选app支付宝绑定方法
猫眼电影app如何筛选支持退改签的影院_猫眼电影退改签影院筛选方法
折叠屏手机充不进电是什么问题? 特殊结构带来的维修难点
知音漫客官网首页入口_知音漫客热门漫画推荐
PHP页面重载后变量状态保持:实现用户档案连续浏览的教程
告别繁琐SEO!如何使用SyliusSitemap插件自动化生成网站地图,提升搜索引擎排名
VS Code中的Tailwind CSS IntelliSense插件使用技巧
虫虫漫画绿色安全入口_虫虫漫画绿色安全入口安全看漫画
Python高效统计字典嵌套列表值在目标列表中的出现次数
抖音如何进行蓝V认证 抖音企业号申请所需资料与流程
《咸鱼之王》新版孙坚技能解析
海棠阅读网页版_进入海棠网页版在线阅读中心
优酷官网登录入口电脑版 优酷官网网址入口
《气泡星球》兑换码礼包大全
《优志愿》修改手机号方法
Word 2003字体大小设置方法
Magento 2 产品保存事件中安全更新属性的最佳实践
ToDesk远程摄像头功能使用方法_ToDesk远程视频画面查看设置教程
食品生产用水只要符合国家规定的生活饮用水卫生标准就可以吗
红手指专业版app注册教程
OPPO A3 WiFi频繁断开怎么办 OPPO A3网络优化技巧
菜鸟裹裹怎样获得取件码_菜鸟裹裹获得取件码步骤
Go App Engine 项目结构与包管理深度指南
《下一站江湖2》心法融合技巧
偃武诸葛亮阵容搭配推荐
VS Code如何设置默认配置
163邮箱登录入口官网 163.com邮箱登录入口
苹果手机怎么合并照片_苹果手机合并多张照片的操作方法
鲁班大师乓乓皮肤获取方法
2025-10-16
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。