2014-06-05 71 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

謝謝你,這兩個答案都像魅力一樣工作 –