我正在使用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}}方法等待表创建?
答案 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.