jquery每个循环得到元素的裕度

jquery each loop get margin of element

本文关键字:元素 循环 jquery      更新时间:2023-09-26

我有7个元素,它们通过css文件上的css样式设置了不同的左边距和上边距属性。我想循环浏览它们并收集这些空白。

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

但是,我无法收集这些值。有人能为解决这个问题提供建议吗?

由于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();