所有包含元素的宽度+最后一个元素的宽度

时间:2011-02-10 09:56:10

标签: jquery width

我需要一个容器div作为其所有图像的组合宽度,加上最后一个图像的宽度。我已经得到了组合图像的宽度:

$(window).load(function() {
    $('.pressimage').each(function() {
        var totalImageWidth = 0;

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

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

那么我现在如何添加最后一张图片的宽度呢?我试过这个,但它不起作用:

$(window).load(function() {
    $('.pressimage').each(function() {
        var totalImageWidth = 0;

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


        $("img", this).last(function () {
            lastImageWidth = $(this).width();
        });

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

谢谢

更新。 对不起,我正在处理错误的代码。这就是我所拥有的div使其所有图像的宽度:

$(window).load(function() {

    var pub_accum_width = 0;

    $('.view-public-collection .pubimagecolor').find('img').each(function() {
        pub_accum_width += $(this).width();
    });
    //alert(pub_accum_width);

        $('.view-public-collection .view-content').width(pub_accum_width);

}); 

这是我修改过的代码,但它没有使div更宽:

$(window).load(function() {


    var pub_accum_width = 0;
    var pub_accum_last = 0;

    $('.view-public-collection .pubimagecolor').find('img').each(function() {
            pub_accum_width += $(this).width();
    });


    $('.view-public-collection .pubimagecolor').find('img').last(function() {
        pub_last_width += $(this).width();
    });


    $('.view-public-collection .view-content').width(pub_accum_width + pub_last_width);


});

由于

1 个答案:

答案 0 :(得分:3)

更新问题的答案:

$(window).load(function() {
    var pub_accum_width = 0;
    var pub_last_width = 0; // not pub_accum_last

    $('.view-public-collection .pubimagecolor').find('img').each(function() {
        pub_accum_width += $(this).width();
    });

    //                                                   ...last(function(...
    $('.view-public-collection .pubimagecolor').find('img').last().each(function() {
        pub_last_width += $(this).width();
    });

    $('.view-public-collection .view-content').width(pub_accum_width + pub_last_width);
});

last()是一个单独的遍历函数,您无法向其添加回调参数。选择最后一个元素,然后使用each()。您还可以使用不同的变量名称。


您必须在lastImageWidth之后在 last()回调 each()回调之外定义last()变量,以便能够在外部使用它试。

// ...
var totalImageWidth = 0;
var lastImageWidth = 0;
// ...