Javascript 通过类生成错误选择jQuery

Javascript 通过类生成错误选择jQuery,javascript,jquery,Javascript,Jquery,我正试图通过以下jquery代码获取一些具有相同类的div: var divs = $('.divClass'); 然后循环得到每个div的height和left css属性。我尝试了两种方法,都失败了 第一: divs.each( function(d) { var height = d.height(); // also tried: var height2 = d.css("height"); }); 第二: var divArray = divs.toA

我正试图通过以下jquery代码获取一些具有相同类的div:

var divs = $('.divClass');
然后循环得到每个div的height和left css属性。我尝试了两种方法,都失败了

第一:

divs.each( function(d) {
     var height = d.height();
     // also tried:
     var height2 = d.css("height");
});
第二:

var divArray = divs.toArray();
for (var i = 0; i < divArray.length; i++) {
    var height = divArray[i].height();
}
var divArray=divs.toArray();
对于(var i=0;i
这两个函数都会抛出错误:“uncaughttypeerror:Undefined不是函数。”。真正奇怪的是
divs.first().height()
返回正确的值。此外,数组的成员数也正确。我对这两种迭代方案都做了什么错误吗?这真是令人讨厌。今天我发现了为什么每个人都抱怨JS。谢谢

each()
有两个参数,index和DOM元素(这也是
this
的值)


您这样做是错误的,因为
d
将不是DOM元素,而是匹配集中当前元素的从零开始的索引

相反,在
中。每个
回调使用
$(this)
引用当前元素:


您还可以从传递到回调的第二个(不是第一个)参数中获取当前元素,但没有必要这样做。

我会试试。。知道为什么for循环不起作用吗?
divArray[i]
是本机DOM元素,而不是jQuery ObjectDam。。我觉得自己像个白痴。关于这个问题的第二个答案应该被否决,因为我在上面浪费了半个下午!!以后将始终首先查看文档。当然,没问题!我们都犯过这样的错误,有时我还是会把参数弄混,特别是在每个()和map()上,因为参数的顺序是相反的。
divs.each( function(index, element) {
     var height = $(element).height();
});
divs.each(function() {
   var height = $(this).height();
});