我有一个具有以下结构的 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>
图像根据窗口高度被赋予动态高度,它们的宽度是自动的(可变的,我的图像有不同的比例,但我保持它们的高度相同),所以我想制作我的信息文本div 匹配这个可变宽度。我尝试了以下方法:
jQuery('.infotext').width(jQuery(this).closest('img').width());
jQuery('.infotext').width(jQuery('.infotext').closest('img').width());
jQuery('.infotext').width(jQuery('.infotext').parent().width());
但它们都不起作用。到目前为止,我很难过......
更新: 我已经弄清楚是什么原因造成的,但还不知道解决方案是什么。我的图像正在使用延迟加载,这会干扰获取正确的图像高度。我需要弄清楚如何在延迟加载发生后获取图像大小...
最佳答案
图像标记是前一个元素,而不是祖先元素,因此 .closest()
和 .parent()
将不起作用。
尝试:
jQuery('.infotext').each(function(){
$(this).width(jQuery(this).prev('img').width());
})
关于jQuery 根据最近图像的宽度更改 div 的宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24145139/