javascript - 单击时如何更改没有 id/class 的特定 'td' 元素的背景颜色?

标签 javascript jquery css html

我正在用 HTML 处理一张大表(比如 100*100)。因此,无法为每个元素提供其 id/class。我想更改被单击的单元格的 bg 颜色(通过 javascript)。我怎么知道点击了哪个单元格,或者请建议我执行相同操作的任何其他替代方法。

最佳答案

您可以在 上设置一个处理程序,并在the bubbling phase 期间通过事件委托(delegate)捕获click 事件。 .这将避免在表格的每个单元格上设置一个处理程序,这可能非常昂贵,尤其是当表格有很多单元格时(如在您的特定场景中)。

Javascript

let table = document.querySelector('table'); 
/* or other selector retrieving the table */

table.addEventListener('click', function(ev) {
   let tgt = ev.target.nodeName.toLowerCase();
   if (tgt === 'td') {
      tgt.classList.add('selected');
   }
});

使用此脚本,.selected 类将被应用一次到接收到点击事件的单元格。使用类名而不是设置内联样式的选择允许您远离 javascript 的样式,因此您的代码可以更易于维护。

CSS

.selected {
   background: yellowgreen;
}

关于javascript - 单击时如何更改没有 id/class 的特定 'td' 元素的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48984878/

相关文章:

javascript - 如何取消选择除另一个图例之外的所有图例,它不应该在echarts中取消选择

javascript - 调用 jquery-1.10.2.js 时 jquery-1.3.1.min.js 不工作

html - 使用 CSS 保持 div 的纵横比

javascript - Google Plus 固定滚动条

javascript - jquery下拉菜单和ajax窗口之间的冲突

javascript - Changing::before Edge 中的伪样式不会按预期重绘视觉更新

javascript - 我在使用 ng-model 时遇到双向数据问题

javascript - 如何在 Owl Carousel 中创建导航箭头

jquery - 使用 jquery mobile 更改点击时的数据图标

html - 将文本与样式元素内的左下角对齐