当前位置:首页 > JavaScript

js实现表

2026-04-06 21:44:05JavaScript

以下是JavaScript实现表格的几种常见方法,可根据需求选择适合的方式:

动态创建表格(DOM操作)

使用DOM API动态生成表格结构,适合需要灵活操作表格内容的场景:

js实现表

// 创建table元素
const table = document.createElement('table');
table.border = '1';

// 创建表头
const thead = table.createTHead();
const headerRow = thead.insertRow();
['姓名', '年龄', '城市'].forEach(text => {
  const th = document.createElement('th');
  th.textContent = text;
  headerRow.appendChild(th);
});

// 添加数据行
const tbody = table.createTBody();
const data = [
  ['张三', 25, '北京'],
  ['李四', 30, '上海']
];

data.forEach(rowData => {
  const row = tbody.insertRow();
  rowData.forEach(cellData => {
    const cell = row.insertCell();
    cell.textContent = cellData;
  });
});

// 插入到页面
document.body.appendChild(table);

模板字符串生成

使用模板字符串快速生成HTML结构,适合简单表格:

const data = [
  { name: '王五', age: 28, city: '广州' },
  { name: '赵六', age: 35, city: '深圳' }
];

const tableHTML = `
  <table border="1">
    <thead>
      <tr>
        <th>姓名</th>
        <th>年龄</th>
        <th>城市</th>
      </tr>
    </thead>
    <tbody>
      ${data.map(row => `
        <tr>
          <td>${row.name}</td>
          <td>${row.age}</td>
          <td>${row.city}</td>
        </tr>
      `).join('')}
    </tbody>
  </table>
`;

document.body.innerHTML = tableHTML;

使用框架(React示例)

在React中创建可复用的表格组件:

js实现表

function Table({ data }) {
  return (
    <table>
      <thead>
        <tr>
          <th>姓名</th>
          <th>年龄</th>
          <th>城市</th>
        </tr>
      </thead>
      <tbody>
        {data.map((item, index) => (
          <tr key={index}>
            <td>{item.name}</td>
            <td>{item.age}</td>
            <td>{item.city}</td>
          </tr>
        ))}
      </tbody>
    </table>
  );
}

// 使用示例
const tableData = [
  { name: '钱七', age: 22, city: '杭州' },
  { name: '孙八', age: 40, city: '南京' }
];

ReactDOM.render(
  <Table data={tableData} />,
  document.getElementById('root')
);

表格排序功能实现

为表格添加点击表头排序的功能:

function sortTable(columnIndex) {
  const table = document.querySelector('table');
  const tbody = table.querySelector('tbody');
  const rows = Array.from(tbody.querySelectorAll('tr'));

  rows.sort((a, b) => {
    const aText = a.cells[columnIndex].textContent;
    const bText = b.cells[columnIndex].textContent;
    return isNaN(aText) ? aText.localeCompare(bText) : aText - bText;
  });

  rows.forEach(row => tbody.appendChild(row));
}

// 给表头添加点击事件
document.querySelectorAll('th').forEach((th, index) => {
  th.style.cursor = 'pointer';
  th.addEventListener('click', () => sortTable(index));
});

响应式表格处理

针对移动端优化表格显示:

@media screen and (max-width: 600px) {
  table {
    display: block;
    overflow-x: auto;
  }
}

标签: js
分享给朋友:

相关文章

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callbac…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <…

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…

js实现文字滚动

js实现文字滚动

实现文字滚动的几种方法 使用CSS动画实现滚动 通过CSS的@keyframes和transform属性可以实现平滑的文字滚动效果。 <style> .scroll-text { w…