[英]How to hide / show tr tag in table without change the width and sort of cells
Hi i would hide / show one row from table But when click to show row again the design change The columns of the hidden row shrink under one column of first row My code嗨,我会隐藏/显示表格中的一行但是当单击再次显示行时,设计更改隐藏行的列缩小到第一行的一列我的代码
function toggle(tr_id) { var x = document.getElementById(tr_id); if (x.style.display === "none") { x.style.display = "block"; } else { x.style.display = "none"; } }
<div class="col-lg-6 col-lg-push-3"> <table class="table table-resposive "> <tr> <td>name</td> <td>address</td> <td>age</td> <td><a onclick="toggle('edit');" class="btn btn-sm btn-primary">edit</a></td> </tr> <tr id="edit"> <td><input type="text"></td> <td><input type="text"></td> <td><input type="text"></td> <td><a class="btn btn-sm btn-success">save</a></td> </tr> </table> </div>
You can use display="table-row"
您可以使用display="table-row"
function toggle(tr_id) {
var x = document.getElementById(tr_id);
if (x.style.display === 'none') {
x.style.display = 'table-row';
} else {
x.style.display = 'none';
}
}
It's because you are displaying the row as block.这是因为您将行显示为块。 Try use visibility == "hidden"
instead of display
尝试使用visibility == "hidden"
而不是display
EDIT : Or you can use display = "table-row"
as show below.编辑:或者您可以使用display = "table-row"
,如下所示。 The use visibility == "hidden"
will hide the row, but it will still take up the same space as before. use visibility == "hidden"
将隐藏该行,但它仍会占用与以前相同的空间。
if (x.style.display === "none") {
x.style.display = "table-row";
} else {
x.style.display = "none";
}
function toggle(tr_id) { var x = document.getElementById(tr_id); if (x.style.visibility === "hidden") { x.style.visibility = "visible"; } else { x.style.visibility = "hidden"; } }
<div class="col-lg-6 col-lg-push-3"> <table class="table table-resposive "> <tr> <td>name</td> <td>address</td> <td>age</td> <td><a onclick="toggle('edit2');" class="btn btn-sm btn-primary">edit</a></td> </tr> <tr id="edit1"> <td><input type="text" ></td> <td><input type="text" ></td> <td><input type="text" ></td> <td><a class="btn btn-sm btn-success">save</a></td> </tr> <tr id="edit2"> <td><input type="text" ></td> <td><input type="text" ></td> <td><input type="text" ></td> <td><a class="btn btn-sm btn-success">save</a></td> </tr> <tr id="edit3"> <td><input type="text" ></td> <td><input type="text" ></td> <td><input type="text" ></td> <td><a class="btn btn-sm btn-success">save</a></td> </tr> </table>
Snippet 2 :片段 2:
function toggle(tr_id) { var x = document.getElementById(tr_id); if (x.style.display === "none") { x.style.display = "table-row"; } else { x.style.display = "none"; } }
<div class="col-lg-6 col-lg-push-3"> <table class="table table-resposive "> <tr> <td>name</td> <td>address</td> <td>age</td> <td><a onclick="toggle('edit2');" class="btn btn-sm btn-primary">edit</a></td> </tr> <tr id="edit1"> <td><input type="text" ></td> <td><input type="text" ></td> <td><input type="text" ></td> <td><a class="btn btn-sm btn-success">save</a></td> </tr> <tr id="edit2"> <td><input type="text" ></td> <td><input type="text" ></td> <td><input type="text" ></td> <td><a class="btn btn-sm btn-success">save</a></td> </tr> <tr id="edit3"> <td><input type="text" ></td> <td><input type="text" ></td> <td><input type="text" ></td> <td><a class="btn btn-sm btn-success">save</a></td> </tr> </table>
set your td
css with fixed width设置你的td
css 固定宽度
function toggle(tr_id) { var x = document.getElementById(tr_id); if (x.style.display === "none") { x.style.display = "block"; } else { x.style.display = "none"; } }
td { width: 140px; display: inline-block; }
<div class="col-lg-6 col-lg-push-3"> <table class="table table-resposive "> <tr> <td>name</td> <td>address</td> <td>age</td> <td><a onclick="toggle('edit');" class="btn btn-sm btn-primary">edit</a></td> </tr> <tr id="edit"> <td><input type="text"></td> <td><input type="text"></td> <td><input type="text"></td> <td><a class="btn btn-sm btn-success">save</a></td> </tr> </table> </div>
how to make row move to top如何使行移动到顶部
function toggle(tr_id) { var x = document.getElementById(tr_id); if (x.style.visibility === "hidden") { x.style.visibility = "visible"; } else { x.style.visibility = "hidden"; } }
<div class="col-lg-6 col-lg-push-3"> <table class="table table-resposive "> <tr> <td>name</td> <td>address</td> <td>age</td> <td><a onclick="toggle('edit');" class="btn btn-sm btn-primary">edit</a></td> </tr> <tr id="edit"> <td><input type="text" ></td> <td><input type="text" ></td> <td><input type="text" ></td> <td><a class="btn btn-sm btn-success">save</a></td> </tr> <tr> <td>name</td> <td>address</td> <td>age</td> <td><a onclick="toggle('edit1');" class="btn btn-sm btn-primary">edit</a></td> </tr> <tr id="edit1"> <td><input type="text" ></td> <td><input type="text" ></td> <td><input type="text" ></td> <td><a class="btn btn-sm btn-success">save</a></td> </tr> </table>
the default value of display
propery of tr
is table-row
but not block
,so the design is changed. tr
的display
属性的默认值是table-row
而不是block
,所以设计改变了。
You should replace 'block' with 'table-row'你应该用'table-row'替换'block'
Here's a plain JavaScript way of doing toggle:这是一种简单的 JavaScript 切换方式:
function toggle(_id) { var x = document.getElementById(_id); x.classList.toggle("hide-me"); }
.hide-me { display: none; }
<div class="col-lg-6 col-lg-push-3"> <table class="table table-resposive "> <tr> <td>name</td> <td>address</td> <td>age</td> <td><a onclick="toggle('edit');" class="btn btn-sm btn-primary">edit</a></td> </tr> <tr id="edit"> <td><input type="text"></td> <td><input type="text"></td> <td><input type="text"></td> <td><a class="btn btn-sm btn-success">save</a></td> </tr> </table> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.