1

我正在使用 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()方法等到创建表?

4

1 回答 1

1

我想给你看一些代码。就这样吧。

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

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

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

$('#newTable').append(theTr);
$('.row0').css('visibility', 'hidden'); //might not destroy your css.
于 2013-10-28T18:44:14.083 回答