2015-11-04 51 views
0

我有7個元素具有不同的margin-left和margin-top屬性,通過css文件上的css樣式設置它們。我想循環他們並收集這些利潤。jquery each loop得到元素的邊際

我的jQuery現在看起來是這樣的:

var $elements = $(".elements"); 
var elementsMargins = []; 
$elements.each(function(index){ 
    var elementObj = { 
     elIndex: index, 
     elMarginLeft: this.css("margin-left"), 
     elMarginTop: this.css("margin-top") 
    }; 

    elementsMargins.push(elementObj); 
}); 

不過,我不能夠收集到這些值。有人可以建議或提出任何建議來解決問題嗎?

回答

2

由於css()是一個jQuery方法,您必須將this包含在jQuery中才能使用該方法。請使用:

$(this).css("margin-left"), //and 
$(this).css("margin-top") 

,而不是this.....

,我會建議使用map()方法。您不需要明確指定index,因爲它將與每個對象的數組中的索引匹配。

var elementsMargin = $('.elements').map(function() { 
    return { 
     elMarginLeft: $(this).css('margin-left'); 
     elMarginTop: $(this).css('margin-top'); 
    }; 
}).get(); 
+0

不錯,你救了我的一天,從我身邊發現很愚蠢的錯誤我會說。並感謝您對map()的建議 –