Javascript jQuery抛出一个错误,即元素.find()不是函数
我编写了一个小JS来迭代一组匹配的元素,并对每个元素执行一些任务 代码如下:Javascript jQuery抛出一个错误,即元素.find()不是函数,javascript,jquery,Javascript,Jquery,我编写了一个小JS来迭代一组匹配的元素,并对每个元素执行一些任务 代码如下: var eachProduct = $(".item"); eachProduct.each(function(index, element){ var eachProductContent = element.find(".product-meta").clone(); }); 当我控制台记录元素时,它会正确输出准确的对象。为什么jquery要抛出此错误?因为元素是dom元素而不
var eachProduct = $(".item");
eachProduct.each(function(index, element){
var eachProductContent = element.find(".product-meta").clone();
});
当我控制台记录
元素
时,它会正确输出准确的对象。为什么jquery要抛出此错误?因为元素
是dom元素而不是jquery对象
var eachProductContent = $(element).find(".product-meta").clone();
var eachProductContent = $(element).find(".product-meta").clone();
在
each()
处理程序中,您将获得dom元素引用作为第二个参数,而不是jQuery对象引用。因此,如果您想访问元素上的任何jQuery方法,则需要获取元素jQuery包装对象。您正在对普通JS对象调用.find()
,但该函数属于jQuery对象
var eachProductContent = $(element).find(".product-meta").clone();
var eachProductContent = $(element).find(".product-meta").clone();
您可以将其包装在$()
中,将其转换为jquery对象。为了避免这种差异,您可以简单地使用$(this)
引用而不是使用其他引用。您应该将“element”更改为“this”:
对当前元素使用$(this)
var eachProductContent = $(this).find(".product-meta").clone();
但是如果我需要在
每一个内部处理每一个产品该怎么办?@EgoPingvina您可以简单地使用$(this)
元素的istead。