用js隐藏HTML表行<tr>从而不占用空间

hide with js an HTML table row <tr> so that it takes up no space

本文关键字:gt 占用空间 tr lt js 隐藏 HTML 表行      更新时间:2023-09-26

我正在用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);
            }

如何以不占用任何空间的方式隐藏行?

tr.style.visibility = "none";更改为tr.style.display = 'none'

有了display:none,就不会为tr分配空间,因为tr不会出现在页面上,我们可以通过DOM与tr交互。

对于visibility:hiddentr不可见,但它占用了分配给它的空间。这意味着tr在页面上呈现,但似乎不可见。