使用event.target时出现text is not a function错误,如何让控制台输出5?
问题分析与解决方案
问题根源
你遇到的text is not a function错误,核心原因是混淆了原生DOM元素和jQuery对象的方法:
event.target返回的是原生DOM节点,它并没有jQuery专属的.text()方法;.text()是jQuery封装的方法,只能调用在jQuery对象上。
修复方案
有两种简单的修复方式,任选其一即可:
方案1:把原生DOM转为jQuery对象
将obj用$()包裹,转换成jQuery对象后再调用.text():
function fn(event){ let obj = event.target; let x = parseInt($(obj).text()); // 用$(obj)把原生DOM转成jQuery对象 console.log(x); }
方案2:使用原生DOM的文本属性
直接用原生DOM的textContent(推荐,更高效)或innerText来获取文本内容,无需依赖jQuery:
function fn(event){ let obj = event.target; let x = parseInt(obj.textContent); // 原生DOM自带的文本属性 console.log(x); }
两种方案都能让控制台正常输出5,如果你的项目已经引入了jQuery,两种都能用;如果想减少jQuery依赖,方案2更轻量化。
内容的提问来源于stack exchange,提问作者qadenza
相关产品推荐
相关产品推荐

