0

我正在尝试获取一些嵌套图像的宽度。我有以下 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());
});

提前致谢!

4

4 回答 4

1

我刚刚检查了它的工作正常。

   $(document).ready(function(){

      $('.slide').each(function(){
        alert($(this).attr('id'));
            alert($(this).find('a').find('img').width());
});

    });
于 2012-10-09T12:50:26.857 回答
0

我也是,它对我有用。

您使用的是哪个浏览器?

我在 Chrome 22、IE 9、Firefox 15 中测试过

于 2012-10-09T12:51:32.343 回答
0

也许您还可以检查您的图像是否隐藏。因为 jquery 在计算隐藏元素的维度时存在问题

于 2012-10-09T12:53:40.287 回答
0

可能是您的 jQuery 运行时图像尚未完全加载。见这里:在执行某事之前要求 jQuery 等待所有图像加载的官方方式

此外,clientWidth将为您提供图像的实际渲染宽度

你可以试试:

$('.slide').load(function() {
  alert(this.clientWidth);
})
于 2012-10-09T13:00:13.777 回答