Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript If-else语句将图像大小传递给周围的div_Javascript_Jquery_Image_Dimension - Fatal编程技术网

Javascript If-else语句将图像大小传递给周围的div

Javascript If-else语句将图像大小传递给周围的div,javascript,jquery,image,dimension,Javascript,Jquery,Image,Dimension,在我的网站上,主内容中的所有图像都包装到一个div容器中,如下所示: <div class="imagecontainer"> <img src="image.jpg" width="300" /> </div> 但仅当图像具有宽度属性时。如果使用width()元素而不是attr('width'),则所有没有width属性的图像的宽度都将显示为0 我还尝试了几个if-else语句来检查: 如果图像具有宽度属性,则将其添加到其周围的div中 否则使用显示宽

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

<div class="imagecontainer">
  <img src="image.jpg" width="300" />
</div>
但仅当图像具有宽度属性时。如果使用width()元素而不是attr('width'),则所有没有width属性的图像的宽度都将显示为0

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

  • 如果图像具有宽度属性,则将其添加到其周围的div中
  • 否则使用显示宽度的图像并将其添加到其周围的div中
  • 但是没有成功

    是否有办法获取图像显示大小并将其添加到周围的div中?

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

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

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

    为什么要这样做?容器div将与图像具有相同的宽度anyway@OneTrickPony-你为什么这么说?这里有一把小提琴来反驳你:但是这个问题的标记中没有文本。即使它有文本,他为什么要将包含文本和图像的DIV调整为图像的宽度?没有关系sense@OneTrickPony-OP(正确)仅包括与问题相关的代码。至于将
    div
    调整为图像宽度;这又是一把小提琴:@One-Trick-Pony-我需要在图像悬停遮罩的img周围画一个div,遮罩的尺寸必须与图像的尺寸相同。下次我在我的原始帖子中澄清这一点。谢谢你的提醒。是的,这很管用。我读过关于使用onload的文章,但不知道如何实现它。
    $(window).on('load', function () {
        $('.imagecontainer').each(function() {
            $(this).width( $(this).find('img').width() );
        });
    });