根据子图像设置DIV宽度

时间:2011-08-26 21:31:08

标签: javascript jquery

我正在尝试根据子图像设置DIV宽度。如果只有一个DIV,则下面的代码有效。当有更多时,它将仅使用第一个子图像的宽度(第一个DIV)。

$('.img_thumb').each(function(){
   $('img').load(function(){
      var img_width = $('.img_thumb img').width();
      $('.img_thumb').css('width', img_width + 'px');
   });
});

任何帮助将不胜感激。感谢

3 个答案:

答案 0 :(得分:0)

在第3行,您可以引用对象$('.img_thumb img')

var img_width = $('.img_thumb img').width()

总是指向第一个元素。当您在$(this)内时,您需要使用.each才能定位当前元素:

var img_width = $(this).width()

答案 1 :(得分:0)

.load()回调中,使用this来引用感兴趣的特定图片。摆脱.each()

$('img').load(function(){
    var $this = $(this),
        img_width = $this.width();
    $this.closest('.img_thumb').css('width', img_width + 'px');
});

答案 2 :(得分:0)

试试这个:

$('.img_thumb').each(function(){
   var _this = $(this);
   $(this).find('img').load(function(){
      _this.css('width', $(this).width() + 'px');
   });
});