如何将按钮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
相关产品推荐
相关产品推荐

