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

第一个循环遍历 de div-items。然后选择后代 img 元素。得到图片宽度后,放到div的css-style中。

$(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 回答