jQuery .hide方法没有在td上工作?

时间:2013-10-28 18:24:27

标签: javascript jquery html html-table show-hide

我正在使用Javascript和jQuery创建一个表,我想要它,以便当您单击表的第一行上的td时,该列中其余的td将下拉。让我试着通过展示我的代码来解释它。这是我的Javascript:

function createTr (heights) { //heights is just an array of words
    for (var h=0; h<heights.length; h++) { 
        var theTr = $("<tr>", { id: "rowNumber" + h});
        for (var i=0; i<heights.length-3; i++) { 
            theTr.append($("<td>", { "class": "row"+h + " column"+i,
                                     html: heights[h][i]
                                   }));
        }
        $('#newTable').append(theTr); // append <tr id='rowNumber0'> to the table (#newTable), which is written in the html
    }
}

这基本上创建了td,每个td类似于这种格式

<td class="rowh columni">

参数'heights'只是一个数组,例如,它可以是

var heights = [['headerOne', 'headerTwo'], ['someTd', 'anotherTd'],];

它将使用这些单词创建一个表,headerOne和headerTwo将在第一行,someTd和anotherTd将在第二行。

我想隐藏所有td,除了.row0上的td。当我试图隐藏除.row0之外的所有行中的td时,它不起作用。我试过的是把

$('.row0').hide();

之前的$(document).ready(函数,函数之后和函数内部都没有。我基本上只是调用createTr函数

$(document).ready( function() {
    createTr(heights);
});

知道行没有隐藏的原因吗?

如何在创建表格后隐藏它?我尝试将它作为我的Javascript代码的最后一部分,但仍然无法正常工作。我认为它会使表格变慢,即使.hide()函数是Javascript代码的最后一部分,它仍然会在.hide()代码之前执行。如何使.hide()代码执行{ {1}}方法等待表创建?

1 个答案:

答案 0 :(得分:1)

我想给你看一些代码。在这里。

一个。这将确保在隐藏顶行之前表格存在。

$('#newTable').append(theTr);
$('.row0').hide();

visibility:hidden将占用DOM中的空间而不是hide(),它不占用DOM中的空间(尽管两者都存在于DOM中)

$('#newTable').append(theTr);
$('.row0').css('visibility', 'hidden'); //might not destroy your css.