jQuery抛出一个错误,认为element.find()不是一个函数
jQuery throws an error that element.find() is not a function
我写了一个小JS来迭代一组匹配的元素,并在每个元素上执行一些任务。
代码如下:
var eachProduct = $(".item");
eachProduct.each(function(index, element){
var eachProductContent = element.find(".product-meta").clone();
});
当我控制台日志element
时,它输出正确和准确的对象。为什么jquery会抛出这个错误?
因为element
是一个dom元素而不是一个jQuery对象
var eachProductContent = $(element).find(".product-meta").clone();
在each()
处理程序中,您将获得dom元素引用作为第二个参数,而不是jQuery对象引用。因此,如果你想访问元素上的任何jQuery方法,那么你需要获得元素的jQuery包装器对象。
你在一个普通JS对象上调用.find()
,但该函数属于Jquery对象
var eachProductContent = $(element).find(".product-meta").clone();
您可以将其转换为一个jquery对象,通过将其包装在$()
中。为了避免这种差异,您可以简单地使用$(this)
引用而不是使用其他。
为当前元素使用$(this)
var eachProductContent = $(this).find(".product-meta").clone();
你应该把"element"改成"this":
var eachProduct = $(".item");
eachProduct.each(function(index, element){
var eachProductContent = $(this).find(".product-meta").clone();
});
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- jQuery:循环一个具有不同超时值的循环
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 在另一个Find(..)的回调内部查找,如何逃离回调地狱
- 为什么我得到了一个“;未定义的“;使用“”从Find()返回值;这个“;论点
- jQuery 'this' 跟随一个 .find click 函数
- jQuery .each()、.find() 和 .append() 只在最后一个节点上工作
- jQuery.find() 返回一个对象,即使 DOM 中没有匹配的子元素
- 在使用window.find()搜索字符串的过程中,会出现一个对话框
- 从mongodb中的两个集合中的find生成一个json
- MongoDB=>findOne还是find查询下一个对象?(Meteor/React)
- 未捕获类型错误:$(..).find(..). hasclass(..).Show不是一个函数
- 是否调用$find是一个相对昂贵的操作
- 猫鼬,用find选择一个特定的字段
- jQuery抛出一个错误,认为element.find()不是一个函数
- 帆:如何从find函数返回一个值
- jquery find只返回一个元素(在Meteor中)
- jQuery find()方法不能只在一个类上工作
- Meteor:在MongoCollection.find()中的光标上迭代并打印一个字段
- AngularJS:为什么使用 ng-options 时$element.find('option') 返回一个空数组