javascript - 在行内使用 checkox 隐藏表格行
问题描述
我有一个表格,其中包含带有复选框的行和一些内容。这些行是使用 PHP 从数据库中创建的。
这是表格:
<table id="mytable">
<th>checkbox</th>
<th>Contents</th>
<tr>
<td><input type="checkbox" onchange="hiderow()" checked/></td>
<td>Content1</td>
</tr>
<tr>
<td><input type="checkbox" onchange="hiderow()" checked/></td>
<td>Content2</td>
</tr>
<tr>
<td><input type="checkbox" onchange="hiderow()" checked/></td>
<td>Content3</td>
</tr>
<tr>
<td><input type="checkbox" onchange="hiderow()" checked/></td>
<td>Content4</td>
</tr>
<table>
如您所见,复选框已选中。
我想要的是,当我取消选中一个复选框时,该行将被隐藏。例如,如果我取消选中第二行中的复选框,则包含复选框和 Content2 的行将被隐藏。
<script>
function hiderow(){
var i;
var table = document.getElementById("mytable");//get the table
var rows = tab.getElementByTagName("tr");//get the table rows
//loop through each row
for(i = 0; i < rows.length; i++){
var td = rows[i].getElementByTagName("td")[0];//get the first td inside the row
var checkbox = td.getElementByTagName("input");//get the input inside the td
if(checkbox.checked == true){
tr[i].style.display ="block";
}else{
tr[i].style.display ="none";
}
}
}
</script>
我已经尝试过这个脚本,但它不起作用。你能给我一些关于这有什么问题的想法吗?
解决方案
第一:方法hiderow
可以用事件对象修改:
function hiderow(event){
event.target.parentElement.parentElement.style.display ="none";
}
事件对象包含您的父节点的信息,tr
因此只需将其隐藏即可。
第二:然后hiderow(event)
在htmlonchange
事件中添加为
onchange = "hiderow(event)
只要复选框的值发生变化,就会触发此事件。
最终代码片段如下:
<table id="mytable">
<th>checkbox</th>
<th>Contents</th>
<tr>
<td><input type="checkbox" checked onchange = "hiderow(event)" /></td>
<td>Content1</td>
</tr>
<tr>
<td><input type="checkbox" checked onchange = "hiderow(event)"/></td>
<td>Content2</td>
</tr>
<tr>
<td><input type="checkbox" checked onchange = "hiderow(event)"/></td>
<td>Content3</td>
</tr>
<tr>
<td><input type="checkbox" checked onchange = "hiderow(event)"/></td>
<td>Content4</td>
</tr>
<table>
<script>
function hiderow(event){
event.target.parentElement.parentElement.style.display ="none";
}
</script>
推荐阅读
- python - 确保 chromedriver 和 google-chrome 在 ubuntu 中的版本相同
- android - 找不到 FCM 令牌
- list - 放入ZStack时swiftui列表不起作用
- html - 尽管我的文件在同一个工作区中,但我在 vs 代码上不断收到“无法打开文件...找不到文件”消息
- django - 如何设置灵活的 django 模型
- c# - C# 将标题和新列添加到 CSV 文件
- kotlin - net.corda.core.CordaRuntimeException: kotlin.KotlinNullPointerException on startTrackedFlow returnValue
- list - 如何使用 katalon 工具和 groovy 脚本在 Web 服务请求的正文中附加字符串列表
- c - 如何允许用户使用C同时输入字符串和int
- java - 我的 Vector 丢失数据的任何原因?