2014-06-05 103 views
0

我试图得到一些div所有必须通过下面的jQuery代码相同的类:的jQuery选择

var divs = $('.divClass'); 

然后遍历并获得的每个每个高度和左CSS属性DIV。我尝试了两种方法,都是不成功的。

第一:

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(); 
} 

这两个抛出的错误: “遗漏的类型错误:不确定是不是一个函数。”奇怪的是divs.first().height()返回正确的值。此外,该数组具有正确数量的成员。我有两种迭代方案都有问题吗?这是令人难以置信的烦人。今天我发现为什么每个人都抱怨JS。由于

回答

1

each()有两个参数,指标和DOM元素(这也将是中this值),你这样做是错误的,因为d不会是一个DOM元素

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

我会尝试..任何想法为什么for循环不工作,但? –

+0

'divArray [i]'是原生的DOM元素,而不是一个jQuery对象 – adeneo

+0

该死的..感觉就像一个白痴。关于这个问题的第二个答案应该是因为我浪费了我的下午一半而降低的! http://stackoverflow.com/questions/554348/loading-all-objects-with-class-into-an-array-using-jquery总是会在将来首先查看文档。 –

1

但从零开始匹配集中当前元素的索引。

取而代之的是,在.each回调中引用当前元素与$(this)

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

您也可以从(不是第一次)传递给回调参数当前元素,但没有必要。

+0

谢谢你,这两个答案都像魅力一样工作 –