HTML表格解决方案通过增加表格宽度,Javascript,行或单元格的最大高度限制

时间:2015-08-08 22:09:06

标签: javascript

我正在研究一个非常简单的javascript解决方案,在表格中使用overflow-x:auto时非常有用,脚本通过增加表格宽度来减少行高,直到行缩小到理想高度,(我还发现其他问题具有相同的高度)问题)。

现在只剩下两件事来完成这个脚本了:

  1. 获取并检查表每行高度的最佳方式(没有它几乎没用)
  2. 尽可能简化代码。
  3. 我的Javascript(仅检查特定行):

    var h = document.getElementsByTagName('table')[0].rows[1].offsetHeight;
    if (h > 200) {
    document.getElementsByTagName('table')[0].style.width = "2000px";
    
    
    var h = document.getElementsByTagName('table')[0].rows[1].offsetHeight;
    if (h > 200) {
    document.getElementsByTagName('table')[0].style.width = "3000px";
    
    
    var h = document.getElementsByTagName('table')[0].rows[1].offsetHeight;
    if (h > 200) {
    document.getElementsByTagName('table')[0].style.width = "4000px";
    
    }
    }
    }
    

    请帮帮我...

    我想也许有一个简单的代码,我不知道,因为我是javascript初学者,但你们可能知道这个简单的代码......

    编辑:如果你想限制表行高度,最后这是工作代码:

    var i = 0, row, table = document.getElementsByTagName('table')[0], j = table.offsetWidth;
    while (row = table.rows[i++]) {
        while (row.offsetHeight > 160 && j < 4000) {
            j += 300;
            table.style.width = j + 'px';
        }
    }
    

    OR

    for (var i = 0, row; row = document.getElementsByTagName('table')[0].rows[i]; i++) {
        if (row.offsetHeight > 200) {
            document.getElementsByTagName('table')[0].style.width = "1500px";
            if (row.offsetHeight > 200) {
                document.getElementsByTagName('table')[0].style.width = "2000px";
                if (row.offsetHeight > 200) {
                    document.getElementsByTagName('table')[0].style.width = "2500px";
                }
            }
        }
    }
    

1 个答案:

答案 0 :(得分:0)

没有人回答这个问题,但我自己找到了解决方案:

两者都有效:

var i = 0,
    j, row, table = document.getElementsByTagName('table')[0];
while (row = table.rows[i++]) {
    j = 1000;
    while (row.offsetHeight > 200 && j < 2500) {
        j += 500;
        table.style.width = j + 'px';
    }
}

OR

for (var i = 0, row; row = document.getElementsByTagName('table')[0].rows[i]; i++) {
    if (row.offsetHeight > 200) {
        document.getElementsByTagName('table')[0].style.width = "1500px";
        if (row.offsetHeight > 200) {
            document.getElementsByTagName('table')[0].style.width = "2000px";
            if (row.offsetHeight > 200) {
                document.getElementsByTagName('table')[0].style.width = "2500px";
            }
        }
    }
}