jquery每个循环获得元素的边距

时间:2015-11-04 16:41:14

标签: javascript jquery css

我有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);
});

但是,我无法收集这些值。有人可以建议或建议任何解决问题的方法吗?

1 个答案:

答案 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();