我试图获得一些嵌套图像的宽度。我有以下HTML代码:
<div class="slide" id="Slide1">
<a href="#" title="Some Title" target="_blank">
<img src="images/photo1.jpg" alt="Slide 1" class="slideImg">
</a>
<div class="caption" style="width: 476px">
<h1>Stuff</h1>
<p>Some Stuff Description</p>
</div>
</div>
<div class="slide" id="Slide2">
<a href="#" title="Some Title" target="_blank">
<img src="images/photo.jpg" alt="Slide 2" class="slideImg">
</a>
<div class="caption" style="width: 476px">
<h1>Stuff</h1>
<p>Some Stuff Description</p>
</div>
</div>
使用jQuery,我想得到每个IMG的宽度,然后我可以设置(1024px - 那个宽度)到正确的“CAPTION DIV”(<div class="caption">
)。这两个脚本都给了我一个宽度为“0”的第二个图像,这是一个不可能的事情。
$('.slideImg').each(function(){
alert($(this).width());
});
$('.slide').each(function(){
alert($(this).attr('id'));
alert($(this).find('a').find('img').width());
});
提前致谢!
答案 0 :(得分:1)
我刚检查了它的工作正常。
$(document).ready(function(){
$('.slide').each(function(){
alert($(this).attr('id'));
alert($(this).find('a').find('img').width());
});
});
答案 1 :(得分:0)
我也是,它对我有用。
您使用的是哪种浏览器?
我在Chrome 22,IE 9,Firefox 15中进行了测试
答案 2 :(得分:0)
您可以检查图像是否隐藏。因为jquery在计算隐藏元素的维度方面存在问题
答案 3 :(得分:0)
当jQuery运行时,可能是图像没有完全加载。见这里:Official way to ask jQuery wait for all images to load before executing something
此外,clientWidth
将为您提供图像的实际渲染宽度
您可以尝试:
$('.slide').load(function() {
alert(this.clientWidth);
})