我试图通过以下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。感谢
答案 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 (不是第一个)参数中获取当前元素,但是没有必要。