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

点击input获取前一个td内容报错:TypeError: $(...).closest(...).previous is not a function

问题解答

你遇到的错误不是closest()的问题——closest()确实是jQuery的可用函数,错误出在你调用的previous()方法上:jQuery里并没有这个方法,获取前一个同级元素的正确方法是prev()。

修正后的代码

把previous()换成prev()就可以正常获取到"My Text"了:

function myFunc(obj){
  console.debug($(obj).closest('td').prev('td').text());
}

额外优化建议

因为你的obj(也就是input元素)本身就在目标<td>里面,你也可以用parent()代替closest('td'),代码会更简洁:

function myFunc(obj){
  console.debug($(obj).parent().prev('td').text());
}

补充说明

  • closest('selector')的作用是从当前元素开始向上遍历DOM树,找到第一个匹配选择器的祖先元素,这里用来定位input所在的td完全没问题。
  • prev('selector')则是获取当前元素的前一个同级兄弟元素,正好对应你需要的左侧td,这才是jQuery中实现你需求的正确方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:57:17