0

私のサイトでは、メインコンテンツ内のすべての画像が次のようにdivコンテナにラップされています。

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

画像の幅を周囲のdivに追加する必要があります。これは以下を使用して機能します:

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

ただし、画像に幅属性がある場合のみ。attr('width')の代わりにwidth()要素を使用すると、width属性のないすべての画像に幅0が表示されます。

また、if-elseステートメントをいくつか試しました。

  1. 画像に幅属性がある場合は、これを周囲のdivに追加します。
  2. それ以外の場合は、表示された幅の画像を使用して、これを周囲のdivに追加します。

しかし、成功しませんでした。

表示されたサイズの画像を取得して、周囲のdivに追加する方法はありませんか?

4

1 に答える 1

2

を使用するの.width() 正しい方法ですが、ウィンドウが表示されるのを待つ必要がありますload。そのため、コードを実行すると、画像が既に読み込まれています。

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

おそらくその$(this)オブジェクトをキャッシュする必要があります。

于 2013-01-27T02:08:46.673 に答える