jQuery throws an error that element.find() is not a function

because element is a dom element not a jQuery object

var eachProductContent = $(element).find(".product-meta").clone();

Inside the each() handler you will get the dom element reference as the second parameter, not a jQuery object reference. So if you want to access any jQuery methods on the element then you need to get the elements jQuery wrapper object.


You are calling .find() on a plain JS object, But that function belongs to Jquery object

 var eachProductContent = $(element).find(".product-meta").clone();

You can convert it to a jquery object by wrapping it inside $(). And in order to avoid this kind of discrepancies you can simply use $(this) reference instead of using other.


Use $(this) for current Element

var eachProductContent = $(this).find(".product-meta").clone();