用js隐藏HTML表格行,这样它就不会占用空间

时间:2016-01-04 07:36:14

标签: javascript html

我使用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);

            }

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

1 个答案:

答案 0 :(得分:3)

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

使用display:none,不会为tr分配空间,因为tr不会出现在页面上,我们可以通过DOM与tr进行互动。

使用visibility:hidden时,tr不可见,但会占用分配给它的空间。这意味着tr在页面上呈现,但似乎不可见。