Javascript 数组上的jQuery函数不工作
我对以下代码有问题Javascript 数组上的jQuery函数不工作,javascript,jquery,Javascript,Jquery,我对以下代码有问题 var elements = $(".myClasses"); elements[1].animate({something}, 1000); 如果我使用$(“.myClasses”).animate(…)它可以工作,但是如果我只从数组中选择一个元素,为什么它不工作呢 我想我可能不太理解关于对象或数组的规则。这是因为$(“.myClasses”)返回一个jQuery对象,当您作为数组访问它时,它只返回DOM节点而不是jQuery对象。如果要通过索引访问它们,只需使用:
var elements = $(".myClasses");
elements[1].animate({something}, 1000);
如果我使用$(“.myClasses”).animate(…)
它可以工作,但是如果我只从数组中选择一个元素,为什么它不工作呢
我想我可能不太理解关于对象或数组的规则。这是因为$(“.myClasses”)
返回一个jQuery对象,当您作为数组访问它时,它只返回DOM节点而不是jQuery对象。如果要通过索引访问它们,只需使用:
,它将DOM节点转换回jQuery对象,以便您可以对其应用jQuery方法,或者$(elements[1])
,它将jQuery选择器匹配的一组元素减少为指定的零基索引处的单个元素李>$(“.myClasses”).eq(1)
$(元素[1]).animate(…
将[0]
添加到jQuery对象数组将返回DOM元素而不是jQuery元素。因为.animate()
是一种jQuery方法,它只能用于jQuery对象。您可能正在查找$(.myClasses”).eq(1)
,这是与[1]等价的jQuery
。这得到了正确的建议,但原因是错误的。使用[]
从jQuery对象获取元素是完全正确的,但它们作为原始DOM节点返回。$('.myClasses')[1]没有错。
@meagar谢谢,我已经更新了我的答案来反映这一点。OP当然可以转换元素[1]
使用$(元素[1])
创建jquery对象,这将起作用:)这不是我的典型操作方式。伙计们,非常感谢。我试了很多次,但我永远不会独自得出那个结论。再次感谢!这完全是对“演员阵容”一词的误用。这里没有演员。