Javascript 使所有列表项与最高的列表项具有相同的高度

Javascript 使所有列表项与最高的列表项具有相同的高度,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个我正在创建的测验,每个问题有4个列表项输出,每个问题的答案高度不同 我想写一个脚本,运行和设置所有div的高度与最大的相同 我只有在我的答案有图像的情况下才有下面的答案,它在图像加载完成之前计算hiehgt,然后设置高度,这样它就相当有问题了,有人能看到我写这篇文章的更好方法吗 function resizeAnswers(){ var maxHeight = 23; $('.text-answers li').each(function() { maxHei

我有一个我正在创建的测验,每个问题有4个列表项输出,每个问题的答案高度不同

我想写一个脚本,运行和设置所有div的高度与最大的相同

我只有在我的答案有图像的情况下才有下面的答案,它在图像加载完成之前计算hiehgt,然后设置高度,这样它就相当有问题了,有人能看到我写这篇文章的更好方法吗

function resizeAnswers(){
    var maxHeight = 23;

   $('.text-answers li').each(function() {
     maxHeight = maxHeight > $(this).height() ? maxHeight : $(this).height();
   });

   $('.text-answers li').each(function() {
     $(this).height(maxHeight);
   });
}

要等待所有图像加载完毕,请在窗口加载完毕后调用代码:

$(window).load(function() {
   resizeAnswers();
});
请注意,这将等待加载所有图像,这可能是一个问题,具体取决于站点的性质。如果出现问题,您可以只等待加载列表项中的图像,但这更复杂

此外,您还有:

$('.text-answers li').each(function() {
   $(this).height(maxHeight);
});
但这将做完全相同的事情:

$('.text-answers li').height(maxHeight);

jQuery很乐意将大多数操作应用于一组元素。

^我想他指的是
$(窗口)。在('load',function(){…})
@adeneo啊,是的,这就是我的意思。你可以按照你的方式临时调整高度,然后单独收听图像加载。如果容器的扩展超出了先前设置的最大高度,则调整高度。您还可以缓冲在特定时间范围内发生的所有图像加载,以避免频繁更改高度。等待使用
$(窗口)加载所有图像。加载
也是可能的,但如果您有许多图像加载速度较慢,则可能会影响用户体验。
$(窗口)。加载
并不确保加载所有图像:)@RokoC.Buljan它应该加载,但不可靠。我不认为它在窗口上不可靠。这绝对是个棘手的问题,而且浏览器依赖于图像元素。但是当浏览器加载完内容后,窗口上的
onload
事件将触发。当然,这不包括,例如,在事件发生后添加到dom中的图像,等等。。。例如,请参阅,其中明确说明“当页面完全加载(包括图形)时运行函数”。但我可能错了,所以请随时指正我。