使用jQuery获取div内的图像宽度

时间:2013-01-24 11:05:19

标签: jquery

<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 =&#34; lidiv&#34;。任何人都可以帮忙吗?请!

3 个答案:

答案 0 :(得分: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());
});

答案 1 :(得分:1)

首先循环de div-items。然后选择后代img-element。获取图像宽度后,将其放入div的css样式。

$(document).ready(function(){    
    $("div.lidiv").each(function() { 
        img = $(this).find('img');
        img_width = img.width();
        $(this).css('width', img_width);
    });
});

答案 2 :(得分:0)

试试这个

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

并编写有效的HTML。