想要使用js控制表格中某一列隐藏和显示,平时隐藏,在符合条件时显示,有相关的属性吗
那 挺 麻烦的 。原生js 会麻烦一些 需要 获取tr 然后 循环 td 和th找到对应的 td,th隐藏 。
看你 要哪种了 。
1.表格是for循环出来的 。这样的话 就可以在循环的时候 去除 掉。
2.表格写死的话 那就需要 获取 tr然后循环 了 找到对应的td,th 加样式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
table,
tr,
td,
th {
border: 1px solid red;
}
</style>
</head>
<body>
<label for="name">姓名</label>
<input type="checkbox" name="name" id="name" checked="checked" onchange="ss('name')" />
<br>
<label for="sex">性别</label>
<input type="checkbox" name="sex" id="sex" checked="checked" onchange="ss('sex')" />
<br>
<label for="class">年级</label>
<input type="checkbox" name="class" id="class" checked="checked" onchange="ss('class')" />
<br>
<label for="teacher">班主任</label>
<input type="checkbox" name="teacher" id="teacher" checked="checked" onchange="ss('teacher')" />
<table id="tab">
<tr>
<th name="name">姓名</th>
<th name="sex">性别</th>
<th name="class">年级</th>
<th name="teacher">班主任</th>
</tr>
<tr>
<td>1</td>
<td>3</td>
<td>5</td>
<td>556</td>
</tr>
<tr>
<td>2</td>
<td>5555</td>
<td>5555</td>
<td>5555</td>
</tr>
<tr>
<td>53</td>
<td>5555</td>
<td>5555</td>
<td>5555</td>
</tr>
</table>
</body>
<script>
function ss(id) {
let column = document.getElementById(id); //获取 tadio元素
let checkVal = column.checked; //获取 radio checked值
let table = document.getElementById("tab");
let trs = table.getElementsByTagName("tr"); //获取所有 tr
let ths = trs[0].getElementsByTagName("th"); // 获取 th
let xb = 0;
for (var i = 0; i < ths.length; i++) {
if (ths[i].getAttribute("name") == id) {
xb = i;
if (checkVal) {
ths[i].style.display = "";
} else {
ths[i].style.display = "none";
}
}
}
for (var i = 1; i < trs.length; i++) {
let tds = trs[i].getElementsByTagName("td");
if (checkVal) {
tds[xb].style.display = "";
} else {
tds[xb].style.display = "none";
}
}
}
</script>
</html>
.style.display="none";
.style.visibility="hidden"; 设置一个name属性,批量隐藏,可以看下这个案例
<!DOCTYPE html>
<html>
<head>
<style> </style>
<meta charset="utf-8">
<title>显示隐藏</title>
</head>
<body>
<table>
<tr>
<td>11</td>
<td>22</td>
<td name="test">33</td>
</tr>
<tr>
<td>11</td>
<td>22</td>
<td name="test">33</td>
</tr>
<tr>
<td>11</td>
<td>22</td>
<td name="test">33</td>
</tr>
<table>
<script>
function myFunction(){
var test =document.getElementsByName("test");
for(var j=0;j<test.length;j++){
var tmp =test[j];
var a=tmp.style.display
if(a==""||a=="block"){
tmp.style.display="none";
}else{
tmp.style.display="block";
}
}
}
</script><button type="button" onclick="myFunction()">点击显示或者隐藏</button>
</body>
</html>