在 jQuery 中,使用箭头函数绑定事件时,this 不指向触发事件的 DOM 元素,导致 $(this).text() 返回空字符串;必须改用普通函数才能正确访问当前点击元素。
在 jquery 中,使用箭头函数绑定事件时,`this` 不指向触发事件的 dom 元素,导致 `$(this).text()` 返回空字符串;必须改用普通函数才能正确访问当前点击元素。
当你为多个具有相同 class(如 .adressLine)的 <div> 绑定点击事件,并希望获取当前被点击的那个元素的文本内容时,关键在于正确理解事件处理函数中 this 的指向。
const adressLine = $('.adressLine');adressLine.on('click', () => { console.log('button clicked'); var text = $(this).text(); // ⚠️ 箭头函数不绑定 this,此处 this 指向外层作用域(通常是 window) console.log(text); // 输出空字符串或 undefined});
箭头函数不会创建自己的 this 上下文,而是继承自外层作用域。因此 $(this) 并非指向被点击的 .adressLine 元素,自然无法获取其内容。
const adressLine = $('.adressLine');adressLine.on('click', function() { // ✅ 普通函数中 this 指向当前触发事件的 DOM 元素 console.log('button clicked'); const text = $(this).text().trim(); // 推荐加 .trim() 去除首尾空白 console.log(text);});
此时 this 是原生 DOM 元素(如 <div class="adressLine">123 Main St</div>),$(this) 将其包装为 jQuery 对象,.text() 即可准确提取该单个元素的文本内容。
可在回调中加入调试语句:
console.log('Native element:', this); // 查看原生 DOM 节点console.log('jQuery object:', $(this)); // 查看 jQuery 包装对象console.log('Text content:', $(this).text()); // 获取文本
牢记:jQuery 事件回调中,this 的正确行为依赖于函数类型——普通函数可用,箭头函数不可用。
阿里云服务器ECS省钱技巧:临界天数计算公式:付费模式这么选更划算!
阿里云服务器ECS三种付费类型怎么选 包年包月 / 按量 / 抢占式成本对比
2026阿里开发者社区认证的门店小程序开发工具实测对比:附门店小程序制作教程
2026阿里开发者评选出的全国最佳教培机构小程序开发工具实测对比:附教培机构小程序制作教程
轻抖app如何实名认证 轻抖实名认证方法
2026全国3款AI/SAAS商城小程序开发工具推荐:附商城小程序开发教程