应通过添加/移除css类控制表格行选中状态,避免直接操作style;为tbody tr绑定点击事件,先清除所有.selected再为当前行添加;动态表格需用事件委托;多选需检测ctrlkey并使用toggleclass。

点击行时用 JavaScript 绑定 onclick 切换 class
直接操作 tr 元素的 style.backgroundColor 容易覆盖原有样式,也难复原;更稳妥的方式是通过添加/移除 CSS class 控制背景色。需要确保每行都有独立事件监听,且点击后能清除其他行的选中状态。
- 给表格加
id="myTable",方便用document.getElementById获取 - 在
tr上绑定onclick,触发时遍历所有tr,先清空selectedclass,再给当前行加上 - 注意:表头
thead tr通常不应响应点击,可用tbody tr精确选择
CSS 中定义 .selected 类并设置背景色
不要用内联 style 写死颜色,否则难以统一维护或适配主题。用 class 方式可复用、可动画、可配合 :hover 逻辑共存。
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
-
.selected的优先级要高于默认tr样式,必要时加!important(但更推荐用更具体的选择器,如tbody tr.selected) - 若表格有隔行变色(
tr:nth-child(even)),.selected必须写在它后面,否则会被覆盖 - 避免用
background简写覆盖掉background-image或background-repeat,只写background-color
兼容旧浏览器时别依赖 event.currentTarget
IE8 及更早版本不支持 event.currentTarget,且 this 在内联 onclick 中指向 window。必须用传参方式把当前行元素明确传入函数。
- HTML 中写:
<tr onclick="selectRow(this)"> <li>JS 函数定义为:<code>function selectRow(row) { ... },直接操作row参数 - 不要写成
onclick="selectRow()"再试图在函数里取event.target—— 跨浏览器获取目标元素太不可靠 - 代码只需三行:
$("tbody tr").click(function(){ $("tbody tr").removeClass("selected"); $(this).addClass("selected"); }); - 注意:必须等 DOM 加载完再执行,放在
$(document).ready()里,或脚本置于
如果用了 jQuery,$(this) 是最简方案
jQuery 自动处理了事件上下文和浏览器差异,$(this) 始终指向被点击的 tr,无需手动传参或判断 event。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










