使用jQuery实现<td>内数字递增仅生效一次(0→1)的问题求助
问题解决方法
你的代码仅能生效一次的核心原因有两个:
<td>不是表单控件,不能用val()获取内容,应该用text()读取它的文本值- 获取到的文本是字符串类型,直接
+1会触发字符串拼接而非数字加法,导致后续无法正确递增
修正后的代码如下:
$('[id^=plus]').click(function(){ var cid = $(this).attr('id'); // 读取td文本并转为十进制整数 var xx = parseInt($('#w'+cid).text(), 10); // 处理初始值非数字的情况,默认设为0 xx = isNaN(xx) ? 0 : xx; var number = xx + 1; $('#w'+cid).text(number); });
关键修正点说明
- 替换
val()为text():正确读取<td>的文本内容 - 用
parseInt(..., 10)强制转换为数字,避免字符串拼接问题 - 增加
isNaN判断:防止初始值为空或非数字时出现NaN异常
内容的提问来源于stack exchange,提问作者Jos Venes
相关产品推荐
相关产品推荐

