if else语句将图像大小传递给周围的div

时间:2013-01-27 02:07:12

标签: javascript jquery image dimension

在我的网站上,主要内容中的所有图片都被包装到div容器中,如下所示:

<div class="imagecontainer">
  <img src="image.jpg" width="300" />
</div>

我需要将图像宽度添加到其周围的div中。这适用于:

$('.imagecontainer').each(function() {
  $(this).width( $(this).find('img').attr('width') );
});

但是,如果图像具有width属性。如果我使用width()元素而不是attr('width'),那么没有宽度属性的所有图像都显示宽度为0.

我还尝试了几个if-else语句来检查:

  1. 如果图片具有宽度属性,则将其添加到其周围的div。
  2. 否则使用显示的图像宽度并将其添加到其周围的div。
  3. 但没有成功。

    有没有办法获取显示尺寸的图像并将其添加到周围的div?

1 个答案:

答案 0 :(得分:2)

使用.width() 是正确的方法,但您必须等待窗口load,以便在运行代码时图像已经存在已装载:

$(window).on('load', function () {
    $('.imagecontainer').each(function() {
        $(this).width( $(this).find('img').width() );
    });
});

您应该缓存$(this)对象。