
Unsplash
这又是在项目过程中所遇到的一个问题, ele.find() is not a function ,其中 HTML 代码如下所示:
<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 来获取该行的所有数据,代码如下所示:
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)
来指代当前元素
// 方法一 var good_id = $(checked[i].closest('tr')).find('input[name=good_id]').val();
// 方法二 var good_id = $(this).find('input[name=good_id]').val();
End of File
行文过程中出现错误或不妥之处在所难免,希望大家能够给予指正,以免误导更多人,最后,如果你觉得我的文章写的还不错,希望能够点一下 喜欢 和 关注 ,为了我能早日成为简书签约作者献上一发助攻吧,谢谢!^ ^
注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。