当前位置:首页 > JavaScript

js实现隔行

2026-01-31 17:12:52JavaScript

隔行变色实现方法

使用JavaScript实现表格或列表的隔行变色效果,可以通过以下方式完成:

方法一:纯JavaScript实现

// 获取所有需要隔行的元素(如tr或li)
const rows = document.querySelectorAll('tr'); 

// 遍历元素并设置样式
for (let i = 0; i < rows.length; i++) {
  if (i % 2 === 0) {
    rows[i].style.backgroundColor = '#f2f2f2';
  } else {
    rows[i].style.backgroundColor = '#ffffff';
  }
}

方法二:动态添加CSS类

js实现隔行

const items = document.querySelectorAll('.list-item');

items.forEach((item, index) => {
  item.classList.add(index % 2 === 0 ? 'even-row' : 'odd-row');
});

对应CSS:

.even-row { background-color: #f5f5f5; }
.odd-row { background-color: #ffffff; }

动态数据场景处理

当数据动态加载时,需要重新应用隔行样式:

js实现隔行

function applyStriping() {
  const dynamicRows = document.querySelectorAll('.dynamic-content');

  dynamicRows.forEach((row, i) => {
    row.style.backgroundColor = i % 2 ? '#f8f8f8' : '#ffffff';
  });
}

// 数据更新后调用
applyStriping();

响应式表格处理

对于可能发生排序或过滤的表格:

function stripeTable(table) {
  const visibleRows = Array.from(table.querySelectorAll('tr:not(.hidden)'));

  visibleRows.forEach((row, index) => {
    row.className = index % 2 ? 'odd' : 'even';
  });
}

// 表格变化时调用
document.querySelector('table').addEventListener('sort', () => {
  stripeTable(document.querySelector('table'));
});

CSS-only替代方案

虽然使用JavaScript更灵活,但纯CSS也能实现基本效果:

tr:nth-child(even) { background: #f2f2f2; }
tr:nth-child(odd) { background: #ffffff; }

选择JavaScript方案的主要优势在于可以处理更复杂的逻辑,如动态过滤后的重新着色,或根据其他条件而非简单的奇偶行来设置样式。

标签: js
分享给朋友:

相关文章

js实现继承

js实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 /…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似: func…

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…