jQuery选择通过类生成错误

时间:2014-06-05 22:50:18

标签: javascript jquery

我试图通过以下jquery代码获得所有具有相同类的div:

var divs = $('.divClass');

然后循环并获取每个div的每个高度和左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();
}

这两个都抛出错误:&#34; Uncaught TypeError:Undefined不是函数。&#34;。真正奇怪的是divs.first().height()返回正确的值。此外,该数组具有正确数量的成员。我用迭代方案做错了吗?这令人非常恼火。今天我发现了为什么每个人都抱怨JS。感谢

2 个答案:

答案 0 :(得分:1)

each()有两个参数,索引和DOM元素(也可以是this的值)

divs.each( function(index, element) {
     var height = $(element).height();
});

答案 1 :(得分:1)

你做错了,因为d不是DOM元素,而是匹配集中当前元素的从零开始的索引。

而不是这个,在.each回调中引用$(this)的当前元素:

divs.each(function() {
   var height = $(this).height();
});

你也可以从传递给回调的 second (不是第一个)参数中获取当前元素,但是没有必要。