我有7个元素,通过css文件上的css样式设置了不同的margin-left和margin-top属性。我想循环遍历它们并收集这些边距。
我的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);
});
但是,我无法收集这些值。有人可以建议或建议任何解决问题的方法吗?
答案 0 :(得分: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();