应用于div的图像的组合宽度 - 当图像具有填充时不起作用

时间:2011-02-08 11:11:03

标签: jquery width

我需要在div中获得图像的组合宽度,并将该宽度应用于div。我在这里使用这段代码:

Take combined width of multiple images and apply to their containing div

$(document).ready(function() {
    $('div').each(function() {
        var totalImageWidth = 0;

        $("img", this).each(function () {
          totalImageWidth += $(this).width();
        });

        $(this).width(totalImageWidth);
    });
});

这可以正常工作,直到我对图像应用填充。然后包含div太小,因为图像占用更多空间。

为了尝试修复此问题,我已将“img”更改为包含div的图像。所以这: ("img", this)成为:("div-which-is-around-image", this)

由于某种原因,包含div现在太宽了。我不知道为什么会这样。我改变了dom准备好窗口加载,问题是图像没有及时加载,但它没有任何区别。

谢谢

2 个答案:

答案 0 :(得分:0)

您可以使用innerWidth()方法而不是width() 返回宽度包括填充(不包括边框和边距) 您的代码应如下所示:

$(document).ready(function() {
    $('div').each(function() {
        var totalImageWidth = 0;

        $("img", this).each(function () {
          totalImageWidth += $(this).innerWidth();
        });

        $(this).width(totalImageWidth);
    });
});

答案 1 :(得分:0)

哎呀,我把图像漂浮了但不是它的div。浮动他们两个已修复此问题。 谢谢