我需要一个容器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);
});
由于
答案 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;
// ...