更改表行显示属性

时间:2010-03-30 21:03:07

标签: javascript jquery

我有一个html页面,其中包含一个包含隐藏行的表:

<table>
  <tr id="hiddenTr" style="display:none">
    ...
  </tr>
</table>

我需要使用jquery在客户端显示它。我试过这个

$('#hiddenTr').show();

和这个

$('#hiddenTr').css('display', 'table-row');

这两种实现对我都不起作用。而且第二个不是交叉浏览器。

UPD。对不起,伙计们。这是我的错:我错误输入了tr元素id。奇怪的是$('hiddenTr')没有返回null ......

5 个答案:

答案 0 :(得分:10)

我总是将style.display属性设置为“”(空字符串)以显示隐藏的表格行:

var row = document.getElementById('row_id');
row.style.display = "";   // shows the row

再次隐藏它:

row.style.display = "none";   // hides the row

在jQuery中,这将是:

$("#row_id").css("display", ""); // show the row

$("#row_id").css("display", "none");  // hides the row

IE似乎不喜欢显示的'table-row'值。并且'阻止'不正确,有时它会在其他浏览器中搞砸显示器。

答案 1 :(得分:5)

第一个应该有效。你把它包装在$(document).ready(function(){})中; ?

$(document).ready(function(){
    $('#hiddenTr').show();
});

答案 2 :(得分:2)

您可以尝试设置display:auto,但老实说,除了手动设置表格行/单元格的显示属性之外,我什么都没有。

我发现通常有用的是创建一个名为“hidden”的CSS类,其中包含display:none。而不是show()ing,我只是删除那个类。

答案 3 :(得分:1)

尝试了?

 $('#hiddenTr').css('display','block');

此外,您应该在<TD></TD>中添加一些内容,至少为&nbsp;,这样您的浏览器客户端就不会折叠该行。不同的客户表现得很差......

答案 4 :(得分:0)

您可以尝试使用此代码。

CSS样式

<style>
.hiddenTr {display: none;}  
</style>

HTML表格内容

<table>
  <tr class="hiddenTr">
    <td>Hidden Table Row</td>
  </tr>
  <tr><td>Table Row</td></tr>
  <tr><td>Table Row</td></tr>
</table>

HTML按钮代码

<button onclick="myFunction()">Click Me</button>

包括jQuery CDN

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>

创建自定义javascript函数

<script>
function myFunction() {
    $('.hiddenTr').toggle();
};
</script>