我有一个包含不同长度文本内容的表格。我想要找到最高单元格的高度,然后使所有单元格都达到这个高度。如何实现?
我有一个包含不同长度文本内容的表格。我想要找到最高单元格的高度,然后使所有单元格都达到这个高度。如何实现?
像这样:
var max = 0;
$('table td').each(function() {
max = Math.max($(this).height(), max);
}).height(max);
用通俗易懂的语言描述,循环遍历所有单元格并找到最大值,然后将该值应用于所有单元格。
只是为了与众不同:
var heights = $('td').map(function() {
return $(this).height();
}).get();
var maxHeight = Math.max.apply(Math, heights);
$('td').css('height', maxHeight);
有几个插件可以为您完成此操作。然而,代码看起来会像这样:
var tallest = 0;
$('table td').each(function() {
if (tallest < $(this).height()) {
tallest = $(this).height();
}
});
$('table td').css({'height': tallest});
贡献@tatu ulmanen的示例
这很明显,但如果您只想用更高的单元格拉伸行,请使用tr循环进行包装:)
$('table tr').each(function (){
var max = 0;
$(this).find('td').each(function (){
max = Math.max($(this).height(), max);
}).height(max);
});
var maxHeight = 0;
$('#yourTableID td').each(function(index, value)
{
if ($(value).height() > maxHeight)
maxHeight = $(value.height());
}).each(function(index, value) {
$(value).height() = maxHeight;
});
希望能有所帮助
$(value).height() = maxHeight
。设置器需要将maxHeight
作为函数参数传入,而不传参数则返回高度。那么为什么你最后不使用this
呢? - Harmen
max===false ||
。我认为你应该将$(this).height()
移到一个变量中,这样可以避免多次调用函数。 - HarmenMath.max()
简化了它。 - Tatu Ulmanen