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

2024-02-04

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

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

如何使用 JavaScript 查找按钮位于表内的 class="parentRow" 的同级行,然后切换该同级行的可见性?

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 时该函数就不会中断)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 JavaScript(无 jQuery)显示/隐藏隐藏的 HTML 表格行 的相关文章

  • 类名中的方括号是什么意思?

    I saw here http www position absolute com articles jquery form validator because form validation is a mess 类名中使用的方括号
  • 为什么 Microsoft Outlook 在发送 HTML 电子邮件时不遵循列表样式?

    我有以下代码 但我一生都无法让它在 Microsoft Outlook 中工作 ul style margin left 50px line height 50px list style none li style font size 6
  • 将图像嵌入 Chrome 扩展程序

    我正在构建一个 Google Chrome 扩展 它将 HTML 注入到真实的网页中 注入还包含图像 现在我想知道如何在扩展中引用图像 到目前为止 我只能在服务器上使用它们来引用它们http example com myimage png
  • 为什么缓存清单在桌面上按预期工作时可能无法让移动 Safari 缓存站点?

    我正在本地玩一个简单的网络应用程序 但不太明白为什么它在 iPhone 上没有正确缓存 我正在服务一个 manifest文件具有正确的 MIME 类型 并且当我在桌面 Safari Chrome 和 Firefox 上打开或关闭本地服务器时
  • 避免 IE 中因背景图像而出现“混合内容”警告的具体规则是什么?

    这与SSL 和 CSS 背景图像导致的混合内容 https stackoverflow com questions 1548551 ssl and mixed content due to css background images但这个问
  • 单击

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我知道如何用 jquery 做到这一点 但我被 React 困住了 每当用户点击 div 时 我如何聚焦输入字段 你需要有一个onCl
  • Bootstrap 将图像与文本对齐

    我正在尝试使用引导程序将左侧的图像与文本对齐 并且当在移动设备上查看页面时 图像将居中于文本顶部 div class container div class row h1 About Me h1 div class col md 4 div
  • 为什么闭包编译器不缩短这个?

    我不确定这只是一个错误还是一个预期的功能 基本上 我有这个微小的功能 我现在看到end这里是蓝色的 但这工作得很好 如果我将其重命名为其他名称 我仍然遇到问题 function f a b var start Math min a b va
  • 创建具有可变宽度
    的定义列表(包括 JSFiddle)

    我有一个定义列表 其中术语和定义的宽度都不同 编辑 为了澄清 当我说变化宽度时 我的意思是它们不能是固定宽度 显然 通过设置 的宽度就可以轻松实现这种效果我需要每一对并排坐着 如果需要的话可以变成多行 而不是包裹在 这是一个 JSFiddl
  • 无法使用 CSS 将宽度和高度应用于 -webkit-scrollbar

    webkit scrollbar width 5px height 5px webkit scrollbar thumb background color 808080 为什么宽度和高度属性不起作用 width用于垂直滚动条和height影
  • 根据传单中的属性更改标记颜色

    我的目标是让我的标记根据它们的不同而采用三种不同的颜色rating财产 我看过类似的帖子 其中使用对象来定义颜色 每个标记都有一个rating属性在 1 到 5 之间 我正在考虑使用 else if 语句 例如 if rating lt 3
  • 利用源映射的堆栈跟踪

    概述 浏览器控制台中的堆栈跟踪输出与调用 Error stack 时返回的跟踪不同 控制台堆栈跟踪似乎考虑了源映射 而 Error stack 堆栈跟踪则没有 控制台输出这是输出到控制台的默认堆栈跟踪 Uncaught TypeError
  • 自动打开默认电子邮件客户端并预填充内容

    当用户在页面上保存某些内容时 我需要自动打开用户的默认电子邮件客户端 我需要填充电子邮件主题 地址并在电子邮件正文中添加一些内容 实现这一目标的最佳选择是什么 我知道mailto 属性 但用户必须单击此属性 我不确定它是否允许您指定主题和内
  • 如何以编程方式将 CSS 定义应用到整个页面?

    我确信该信息已经存在 但我找不到它 对不起 我想使用 JavaScript 创建 CSS 规则 并将它们应用到整个页面 就像它们位于文档头部的样式元素中一样 我不想通过生成 CSS 文本来实现 我想将规则保留为可以更改的实体 JavaScr
  • 如何使用 javascript 获取 html5 视频的缩略图?

    我找到了根据 URL 获取视频缩略图的 JavaScript 代码 不过 我只在 YouTube 和 Vimeo 上找到了这个 似乎没有人列出如何处理旨在嵌入 html5 视频标签的视频的示例 能做到吗 谢谢 是的 您可以使用视频作为画布的
  • Angular 2:将路由器出口设计为宽度 < 100%

    我正在构建一个 Angular 2 应用程序 该应用程序将为宽度超过 500 的屏幕提供侧导航栏 为宽度小于 500 的屏幕提供底部导航栏 现在 我尝试为侧栏分配 20 的宽度 即 80 应用内容 我遇到的问题是路由器出口内容 即实际的应用
  • 如何使用 PHP 读取/显示 XML

    有没有办法使用 PHP 读取 external xml 来自不同网站的 xml 文件 我知道有一种方法可以使用 JavaScript 读取 XML 但前提是它们都位于同一根目录中 您能否提供有关如何获取 xml 文件的示例 然后阅读以下内容
  • 设置 HTML 表格的最大显示行数

    具有动态生成的 HTML 表 行数未知 的 JSP 页面 在后端有属性 设置最大行数 例如 最大行数 15 如何将 HTML 表格的行数限制为max rows价值 表的其他部分应该可以通过垂直滚动访问 这意味着用户可以看到 15 行 如果向
  • jQuery - 将日期选择器的容器设置为特定的 div

    我在 div 上使用 jQuery UI 日期选择器 div通过移动鼠标隐藏和显示 因为日期选择器存在于末尾标签 不在我的 div 内 当我将鼠标移动到日期选择器时 div 消失 我像这样加载了日期选择器 JavaScript dt1 da
  • 如何在javascript中访问请求查询字符串参数?

    我见过许多利用 RegEx 的解决方案 坦率地说 这似乎有些可笑 因为 javascript 是如此通用 必须有一种更简单的方法来访问请求参数 有人可以给我演示一下吗 我发现了一个有用的方法网的深度 http www dotnetbull

随机推荐

  • Rails 5 资产未在生产中加载

    我最近更新了 Rails 应用程序中的一些软件包 但现在我的资产无法提供服务 相反 我收到以下错误 Failed to load resource the server responded with a status of 404 Not
  • 制作 VB-dll 并将其加载到 C++ 应用程序中

    我有一个问题已经困扰了整整一周 但我自己无法解决 我一直在谷歌搜索 并在各种论坛中搜索 我发现了很多 这可能有用 尝试过 但没有 没有成功 如果有人有任何线索 请帮助我 我从外部源获得了许多用 VB 编写的类和函数 我需要能够在 C 应用程
  • 从文件中读取特殊字符 - Java

    我正在从具有以下属性的文本文件中读取数据 编码 ANSI文件类型 电脑 现在 该文件包含许多特殊字符 例如度数符号 等 我正在使用以下代码读取该文件 File file new File C X Y SpecialCharacter txt
  • OpenCV VideoCapture 从视频中删除 Alpha 通道

    我有带有 Alpha 通道的视频 我尝试将其放置在另一个视频上 如下所示 public static void overlayImage Mat background Mat foreground Mat output Point loca
  • Javascript Date 对象返回 1969 年 12 月 31 日

    If you are using a date in the form of milliseconds does it need to be converted to a string in order for the Date objec
  • Python 多处理进程无声地崩溃

    我正在使用Python 2 7 3 我使用子类化了一些代码multiprocessing Process对象 如果我的子类 Process 对象中的代码没有错误 则一切运行正常 但是 如果我的子类 Process 对象中的代码存在错误 它们
  • 美化 NSArray 和 NSDictionary 的 NSLog

    我正在处理深度嵌套的 NSArray 和 NSDictionary 至少可以说这是非常耗时的 data objectatindex 0 valueForKey blah 等等 有谁知道一个很好的 iOS 类别来递归记录结构 突出显示类型并显
  • 我可以直接使用 CLion 调试库 (DLL) 吗?

    我正在使用 CLion IDE 处理多个 CMake 项目 这些项目以库作为输出目标 在我的特殊情况下是 DLL 因为我在 Windows 上 现在 直接调试 运行某些方法将非常方便 例如使用使用 CLion 的配置 这可能吗 如果没有 调
  • Android 11 - ROOT:挂载 /system 失败,在 /proc/system 中找不到

    我的操作系统是 PixysOS Android 11 当我做 mount o rw remount system 它失败了 mount system not in proc mounts 但通常它是有效的 我也在android 9中测试过
  • Gson Java 保留关键字

    我有一些 JSON 我正在使用 Gson 反序列化 resp posts public true 我的问题是public是一个Java关键字 那么我如何在我的类中创建一个与publicJSON 中的字段 您可以使用 gson 为您的字段使用
  • 如何在 docker-compose 中运行多个 JVM 参数?

    我从以下答案中得到了 JVM 参数列表https stackoverflow com a 35108974 7809534 https stackoverflow com a 35108974 7809534 Dcom sun manage
  • android NDK 可能实现最快的 2D 帧速率,我的尝试包括在内,有更好的选择吗?

    android NDK 可能实现最快的 2D 帧速率 我的尝试包括在内 有更好的选择吗 我使用 NDK 和 OpenGL ES 2 0 将帧显示为 GL TRIANGLE STRIP 上的纹理 这是在 HTC Desire 上完成的 其硬件
  • 如何检测Android平板电脑中充当USB Host的USB设备?

    我尝试在代码的帮助下开发一个示例应用程序开发者 android com http developer android com guide topics connectivity usb host html 我的代码看起来像这样 public
  • Android - 运行 jarSigner 后是否需要运行 zipAlign?

    我刚刚成功签署了一个 Android 应用程序 我正在尝试重新发布到商店 我不记得是否必须在 jarSigner 之后运行 zipAlign 或者运行 jarSigner 后我一切都好 我正在看这里 http developer andro
  • 当用户“滑出”viewpager 片段时运行代码?

    我需要检测用户何时从我的片段之一滑入和滑出 我尝试了 onPause 但似乎应用程序在滑到相邻屏幕时没有暂停 当将两个屏幕移开时它会被破坏 如果可能的话 我想从片段本身执行此操作 因为我正在动态更改片段 并且某些代码仅在存在某个片段时才有用
  • 用于登录表单的 Ruby RestClient.post

    我正在尝试使用以下代码登录网站 require rubygems require nokogiri require open uri require csv require restclient HEADERS HASH User Agen
  • 使用 ViewPager 的 RecyclerView 的 CoordinatorLayout

    我正在使用视图CoordinatorLayout from android support design 我想附上app layout behavior到片段的RecyclerView 在 Google 给出的示例中 他们仅将其附加在Rec
  • React 创建一个水平分隔线,其间有文本

    我需要创建一个 React 组件 它是一个水平分隔符 其间有类似文本的内容 我在网上拥有的所有资源都无法帮助我完成这项工作 我通过创建一个 Divider 组件并将文本放置在中间来尝试使用 Material ui 分隔线 如下例所示
  • 从 PHP 字符串中删除前 3 个字符和后 3 个字符

    我需要删除字符串的前 3 个字母和后 3 个字母 我知道我可以使用 substr 从某个字符开始 但如果我需要删除第一个和最后一个字符 我不确定是否真的可以使用它 有什么建议么 传递一个负值作为length参数 第三个参数 substr h
  • 如何使用 JavaScript(无 jQuery)显示/隐藏隐藏的 HTML 表格行

    Edit 下面已经回答了这个问题 我想要一个 HTML 表 其中每行之间都有隐藏行 其中包含有关顶级行的更多信息 单击第一列中的展开 折叠图像链接时 隐藏行的可见性将从 display none 切换 显示 表行 我已经有一段时间没有编写