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

如何将按钮change事件的值与位置传递给外部函数(Delegate)

问题解决:将change事件的元素值与位置传递给外部函数

你的代码核心问题是把关键字this用作了函数参数名,JavaScript中this是保留关键字,不能作为变量/参数名使用,这会直接导致语法错误。以下是修正后的可运行代码:

$(".holder").delegate(".selectQuantity", 'change', function() {
   handleSelection(this);
});

function handleSelection(element) {
   let itemId = $(element).val();
   let itemName = $(element).closest('.item').find('.itemName').text();
   // 此处可添加对itemId和itemName的后续处理逻辑
   console.log(itemId, itemName);
};

额外优化建议

如果你的jQuery版本是3.0及以上,推荐使用on方法替代已被废弃的delegate,写法更简洁规范:

$(".holder").on('change', ".selectQuantity", function() {
   handleSelection(this);
});

function handleSelection(element) {
   let itemId = $(element).val();
   let itemName = $(element).closest('.item').find('.itemName').text();
};

关键说明

  • 事件回调函数里的this指向触发change事件的.selectQuantity元素,直接将其作为参数传递给外部函数即可
  • 在外部函数中用自定义参数名(比如element)接收该元素,再通过jQuery包装后就能获取对应的值和相关DOM内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 03:14:55