使用JavaScript隐藏HTML表格行<tr>,使其不占用空间。

3

我正在使用JavaScript创建表格中的行。当我尝试隐藏这些行时,它会隐藏该行,但该行的空间仍然被占用。

我的代码:

for (var i = 0; i < 8; i++) {
                isHide = false;
               if(i<3)
                    isHide = true;
                var table = document.getElementById("table");
                var tr = document.createElement("TR");
                if (isHide == true) {
                    tr.style.visibility = "none";
                }
                else {
                    tr.style.visibility = "visible";
                }
                table.appendChild(tr);
                var td1 = document.createElement("TD");
                var td2 = document.createElement("TD");                    
                tr.appendChild(td1);
                tr.appendChild(td2);
                var checkbox = document.createElement('input');
                checkbox.type = "checkbox";
                checkbox.name = i;
                checkbox.value = i;
                checkbox.id = i;
                var label = document.createElement('label')
                label.htmlFor = i;
                label.appendChild(document.createTextNode(i.toString()));
                if (isHide == false){
                    var mybr = document.createElement('br');
                }

                td1.appendChild(label);
                td2.appendChild(checkbox);

            }

如何隐藏行使其不占用任何空间?


3
隐藏:tr.style.display = 'none'; 取消隐藏:tr.style.display = ''; - Jaromanda X
我正在做的是:tr.style.visibility = "none"; 但它仍然占用空间。 - Nom
1
你能看出我说的话和你正在做的事情之间的区别吗?display !== visibility - Jaromanda X
1个回答

3
tr.style.visibility = "none"; 改成 tr.style.display = 'none' 使用 display:nonetr 不会在页面中显示,也不会占用页面空间,我们可以通过DOM与 tr 进行交互。
使用 visibility:hiddentr 不可见但仍然占用页面分配给它的空间,这意味着 tr 在页面上被渲染但似乎是不可见的。

1
你的想法基本上是对的...除了你需要将 (不正确的值,无论如何都不会隐藏任何东西)tr.style.visibility = "none"; 更改为 tr.style.display = 'none'; - Jaromanda X
你知道如何在没有使用Jquery的情况下显示所有隐藏的行吗? - Nom
你的意思是使用CSS吗? - Senjuti Mahapatra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接