Mos*_*ebi 38 javascript jquery
我编写了一个小型JS来迭代一组匹配的元素,并对每个元素执行一些任务.
这是代码:
var eachProduct = $(".item");
eachProduct.each(function(index, element){
var eachProductContent = element.find(".product-meta").clone();
});
Run Code Online (Sandbox Code Playgroud)
当我控制日志时,element它正确输出和确切的对象.为什么jquery会抛出这个错误?
Aru*_*hny 56
因为element是一个dom元素而不是jQuery对象
var eachProductContent = $(element).find(".product-meta").clone();
Run Code Online (Sandbox Code Playgroud)
在each()处理程序内部,您将获取dom元素引用作为第二个参数,而不是jQuery对象引用.因此,如果您想访问元素上的任何jQuery方法,那么您需要获取元素jQuery包装器对象.
您正在调用.find()一个普通的JS对象,但该函数属于Jquery对象
var eachProductContent = $(element).find(".product-meta").clone();
Run Code Online (Sandbox Code Playgroud)
您可以将其包装在内部,将其转换为jquery对象$().并且为了避免这种差异,您可以简单地使用$(this)引用而不是使用其他.
你应该将"element"改为"this":
var eachProduct = $(".item");
eachProduct.each(function(index, element){
var eachProductContent = $(this).find(".product-meta").clone();
});
Run Code Online (Sandbox Code Playgroud)
使用$(this)当前元素
var eachProductContent = $(this).find(".product-meta").clone();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
66553 次 |
| 最近记录: |