0

标题几乎说明了一切,我不知道这是基本还是高级,但我需要一个变量,它将是页面上每个有边距的元素的所有顶部和底部边距的总和。我不需要左边或右边的。这可以轻松完成吗?

4

3 回答 3

0

试试这个:

function sumMargins() {
    var total = 0;
    $("*").each(function() {
        var top = parseInt($(this).css("marginTop"));
        var bottom = parseInt($(this).css("marginBottom"));
        total += (top + bottom);
    });
    return total;
}

看到这个小提琴。

于 2013-07-30T15:25:06.860 回答
0
var x = 0;

$('*').each(function() {
    x += parseInt($(this).css('margin-top'));
    x += parseInt($(this).css('margin-bottom'));
});

alert(x);
于 2013-07-30T15:27:49.610 回答
0

这是一个工作小提琴:

http://jsfiddle.net/jonigiuro/qQ6sB/

function allMargins() {
    var total = 0;
    $('.container *').each(function(i) {
        var currentTop = parseInt($(this).css('margin-top'));
        var currentBottom = parseInt($(this).css('margin-bottom'));
        total = total + currentTop + currentBottom;
    });
    return total;
}

alert('The total of the margins is: ' + allMargins());

我添加了一个 .container div 来限制 * 选择器,否则它还会包含 html 和 body 标签,它们的边距不一致(我有 8 个像素)。

上面的解决方案更快,但这更可靠。

于 2013-07-30T15:29:55.773 回答