前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >jQuery ele.find() is not a function 错误的解决办法

jQuery ele.find() is not a function 错误的解决办法

作者头像
Nian糕
修改2024-03-19 11:31:39
1.2K0
修改2024-03-19 11:31:39
Unsplash
Unsplash

这又是在项目过程中所遇到的一个问题,ele.find() is not a function,其中 HTML 代码如下所示:

代码语言:javascript
复制
<tr>
    <td><input type="hidden" name="good_id" value=""></td>
    <td><input type="checkbox" name="product_id" value=""></td>
    <td>商品名</td>
    <td>商品价格</td>
    <td>商品数量</td>
</tr>

这是为表格的某一行,每一行代表一种商品,有多行,当我们勾选某一行商品时,通过获取该行商品的 ID 来获取该行的所有数据,代码如下所示:

代码语言:javascript
复制
var good_id = checked[i].closest('tr').find('input[name=good_id]').val();

其中,checked 为勾选选项构成的数组,通过 closest() 方法从元素本身开始,逐级向上级元素匹配 tr 元素,查找来获取整行的数据,进而通过 find() 方法来获取该行的商品 ID

然而,该行代码却报错了,其实原因也很简单,checked[i].closest('tr') 返回的是一个 JS 对象,而 find() 函数则是属于 jQuery 对象的,所以只需要通过 $() 将其包装在其中,转换为 jQuery 对象,也可以通过使用 $(this) 来指代当前元素

代码语言:javascript
复制
// 方法一
var good_id = $(checked[i].closest('tr')).find('input[name=good_id]').val();
代码语言:javascript
复制
// 方法二
var good_id = $(this).closest('tr').find('input[name=good_id]').val();
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.09.11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档