我有一个具有以下结构的ul:
<ul>
<li><img><div class="infotext">some variable length text</div></li>
<li><img><div class="infotext">some variable length text</div></li>
<li><img><div class="infotext">some variable length text</div></li>
<ul>
根据窗口高度为图像赋予动态高度,并且它们的宽度是自动的(并且可变,我的图像具有不同的比例,但是我将它们保持相同的高度),所以我想使我的infotext div与此匹配可变宽度。我尝试了以下方法:
jQuery('.infotext').width(jQuery(this).closest('img').width());
jQuery('.infotext').width(jQuery('.infotext').closest('img').width());
jQuery('.infotext').width(jQuery('.infotext').parent().width());
但他们都不在工作。到目前为止,我很困惑...
更新:
我已经弄清楚是什么原因造成的,但是还没有解决的办法。我的图像正在使用延迟加载,这会干扰获取正确的图像高度。我需要找出发生延迟加载后如何获取图像大小...
最佳答案
image标签是前一个元素,而不是祖先,因此.closest()
和.parent()
将不起作用。
尝试:
jQuery('.infotext').each(function(){
$(this).width(jQuery(this).prev('img').width());
})
jsFiddle example