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

发布于 2024-10-16 22:06:44 字数 1698 浏览 2 评论 0原文

我需要一个容器 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);


});

谢谢

I need a container div to be the combined width of all its images, plus the width of the last image. Ive got the width of the combined images with this:

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

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

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

So how can I now add the width of the last image? Ive tried this but it doesn't work:

$(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);
    });
});

Thanks

UPDATE.
Sorry, I was working on the wrong code. Here's what I have which makes the div the width of all its images:

$(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);

}); 

And here is my modified code, but it hasn't made the div any wider:

$(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);


});

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

三寸金莲 2024-10-23 22:06:44

更新问题的答案:

$(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()。您还使用不同的变量名称。


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

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

ANSWER FOR UPDATED QUESTION:

$(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() is a separate traversing function, you can not add a callback parameter to it. Select the last element with it, then use each(). Also you use different variable names.


You have to define the lastImageWidth variable outside of the last() callback each() callback after last(), to be able to use it outside again.

// ...
var totalImageWidth = 0;
var lastImageWidth = 0;
// ...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文