gpt4 book ai didi

javascript - 如何使用 JavaScript 显示/隐藏隐藏的 HTML 表格行(无 jQuery)

转载 作者:搜寻专家 更新时间:2023-10-31 22:12:22 25 4
gpt4 key购买 nike

编辑:下面已经回答了这个问题。

我想要一个 HTML 表格,每行之间都有隐藏行,其中包含有关顶级行的更多信息。单击第一列中的展开/折叠图像链接时,隐藏行的可见性将从显示切换:无;显示:表格行;。我有一段时间没有编写 JavaScript,需要能够严格地在 JavaScript 中执行此操作,并且不能使用 jQuery toggle() 方法。

我如何使用 JavaScript 找到按钮所在的表中带有 class="parentRow"的同级 class="subRow",然后切换该同级行的可见性?

HTML

<table style="width:50%">
<caption>Test Table</caption>
<thead>
<tr align="center">
<th><span class="offscreen">State Icon</span></th>
<th>Column 2</th>
<th>Column 3</th>
<th>Column 4</th>
<th>Column 5</th>
</tr>
</thead>
<tbody>
<tr align="center" class="parentRow">
<td><a href="#" onclick="toggleRow();"><img alt="Expand row" height="20px;" src="expand.png"></a></td>
<td>test cell</td>
<td>test cell</td>
<td>test cell</td>
<td>test cell</td>
</tr>
<tr style="display: none;" class="subRow">
<td colspan="5"><p>Lorem ipsum dolor sit amet...</p></td>
</tr>
....
</tbody>
</table>

CSS

.offscreen {
position: absolute;
left: -1000px;
top: 0px;
overflow:hidden;
width:0;
}

.subRow {
background-color: #CFCFCF;
}

JavaScript

function toggleRow() {
var rows = document.getElementsByClassName("parentRow").nextSibling;
rows.style.display = rows.style.display == "none" ? "table-row" : "none";
}

最佳答案

使用 this 向您的事件处理程序传递对被单击行的引用:

<td><a href="#" onclick="toggleRow(this);"><img alt="Expand row" height="20px;" src="expand.png"></a></td>

然后按如下方式更新您的 toggleRow 函数:

function toggleRow(e){
var subRow = e.parentNode.parentNode.nextElementSibling;
subRow.style.display = subRow.style.display === 'none' ? 'table-row' : 'none';
}

您可能需要考虑创建一个通用函数来向上导航 DOM 树(这样当/如果您更改 HTML,此函数就不会中断)。

关于javascript - 如何使用 JavaScript 显示/隐藏隐藏的 HTML 表格行(无 jQuery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30901174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com