我正在尝试根据子图像设置DIV宽度。如果只有一个DIV,则下面的代码有效。当有更多时,它将仅使用第一个子图像的宽度(第一个DIV)。
$('.img_thumb').each(function(){
$('img').load(function(){
var img_width = $('.img_thumb img').width();
$('.img_thumb').css('width', img_width + 'px');
});
});
任何帮助将不胜感激。感谢
答案 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');
});
});