当前位置:首页 > 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实现验证码

实现验证码的JavaScript方法 生成随机验证码 使用Math.random()生成随机字符串,结合数字和字母: function generateCaptcha() { const cha…

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previ…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClip…