0
<div class="divclass">
    <ul>
      <div class="lidiv"> <li><img src="img1.jpg"/></li> </div>
      <div class="lidiv"> <li><img src="img2.jpg"/></li> </div>
      <div class="lidiv"> <li><img src="img3.jpg"/></li> </div>
      <div class="lidiv"> <li><img src="img4.jpg"/></li> </div>
      <div class="lidiv"> <li><img src="img5.jpg"/></li> </div>
    </ul>
</div>

画像の幅を取得するにはどうすればよいですか?すべての画像の幅が異なります。画像の幅を取得したいので、それをdiv class="lidiv"に渡します。誰でも助けることができますか?お願いします!

4

3 に答える 3

1
$('.divClass ul li img').width();

このコードは機能するはずです。しかし、Rory McCrossan は正しく、あなたの html は無効です。ブラウザはdiv内のタグを削除する場合があるliため、javascript でアクセスできます。

liしかし、タグに幅を与えることができます:

$('.divClass ul li').each(function() {
    var $li = $(this);
    $li.width($li.find('img').width());
});

警告: 一部のブラウザでは、画像がロードされる前に DOMReady イベントが発生します。したがって、幅が 0 (またはundefined) の場合は、後でこのコードを実行する必要があります。画像の読み込みイベントを聞くことができます:

$('.divClass ul li img').load(function() {
    var $img = $(this);
    $img.parent().width($img.width());
});
于 2013-01-24T11:09:45.450 に答える
1

最初の div 項目のループ。次に、子孫の img 要素を選択します。画像の幅を取得したら、div の css スタイルに配置します。

$(document).ready(function(){    
    $("div.lidiv").each(function() { 
        img = $(this).find('img');
        img_width = img.width();
        $(this).css('width', img_width);
    });
});
于 2013-01-24T11:18:32.060 に答える
0

これを試して

var imgWidth = jQuery('img').clientWidth;

有効な HTML を記述します。

于 2013-01-24T11:10:48.320 に答える