You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让ParseINT与row.find()配合使用?代码运行异常求助

如何正确结合使用parseInt()与row.find()?

嘿,我看到你在代码里对这两个方法的用法有点搞混啦,这就帮你梳理清楚问题所在,以及正确的写法~

你的核心问题是把parseInt()错误地放在了find()的参数里——find()是jQuery用来查找DOM元素的方法,它需要传入CSS选择器字符串(比如.qty),而不是直接传数值。正确的逻辑应该是:先找到目标输入框元素,再获取它的数值,最后用parseInt()把字符串转成整数。

先看看你原代码的问题点:

// 错误写法:find()里不能直接放parseInt的结果
var price2 = row2.find(parseInt($('.qty').val())) + row2.find(parseInt($('.qty2').val())) ;

下面是修正后的完整代码,每一步都加了注释说明:

function update_qty() {
  // 获取当前操作所在的行容器,确保只操作当前行的元素
  var row2 = $(this).parents('.item-row');
  
  // 1. 在当前行内找到.qty输入框,获取值后转成十进制整数
  var qtyValue1 = parseInt(row2.find('.qty').val(), 10);
  // 2. 同样处理.qty2输入框
  var qtyValue2 = parseInt(row2.find('.qty2').val(), 10);
  
  // 处理输入非数字的情况:如果parseInt返回NaN,就设为0避免计算出错
  qtyValue1 = isNaN(qtyValue1) ? 0 : qtyValue1;
  qtyValue2 = isNaN(qtyValue2) ? 0 : qtyValue2;
  
  // 计算总和并保留两位小数
  var total = roundNumber(qtyValue1 + qtyValue2, 2);
  
  // 这里可以补充把结果渲染回页面的代码,比如更新到某个显示元素里:
  // row2.find('.total-display').text(total);
}

再给你划几个关键知识点:

  • row2.find('.qty'):一定要用当前行的容器row2来调用find,这样只会查找当前行内的.qty元素,不会误拿到其他行的输入值
  • parseInt(值, 10):第二个参数10是指定十进制解析,避免输入以0开头时被当成八进制处理的坑
  • 处理NaN:如果用户输入的不是有效数字(比如空值、字母),parseInt会返回NaN,这时候要转成0,不然加法运算会变成NaN,导致结果错误

内容的提问来源于stack exchange,提问作者Hassan Ezadeen Hassan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:34:28