You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular实现表格筛选搜索栏:基于name属性过滤courseData数组

给课程表格添加名称筛选搜索栏

嘿,这就教你怎么给你的课程表格加上按名称筛选的搜索功能,步骤很简单,分HTML和JS两部分来弄:

1. 完善HTML结构

首先在表格上方加个搜索输入框,同时给表格加上<tbody>用来放动态渲染的课程数据,修改后的HTML如下:

<!-- 搜索栏 -->
<input type="text" id="courseSearch" placeholder="输入课程名称搜索..." style="padding: 8px; margin-bottom: 1rem; width: 300px;">

<!-- 课程表格 -->
<table style="border-spacing: 5rem;">
  <tr>
    <td style="font-size: 20px;">CRN</td>
    <td style="font-size: 20px;">Name</td>
    <td style="font-size: 20px;">Lecturer</td>
  </tr>
  <!-- 动态内容会放到这里 -->
  <tbody id="courseTableBody"></tbody>
</table>

2. 编写JavaScript筛选逻辑

接下来写JS代码,实现数据渲染和筛选功能。我先假设你的courseData是类似这样的结构(你直接替换成自己的真实数据就行):

// 示例courseData数组
const courseData = [
  { CRN: "CS101", name: "Introduction to Computer Science", lecturer: "Dr. Smith" },
  { CRN: "MA202", name: "Linear Algebra", lecturer: "Prof. Johnson" },
  { CRN: "PH303", name: "Physics Mechanics", lecturer: "Dr. Lee" }
];

然后添加核心的渲染和筛选函数:

// 渲染表格数据的函数
function renderTable(data) {
  const tableBody = document.getElementById('courseTableBody');
  // 先清空现有内容
  tableBody.innerHTML = '';
  
  data.forEach(course => {
    const row = document.createElement('tr');
    row.innerHTML = `
      <td style="font-size: 16px;">${course.CRN}</td>
      <td style="font-size: 16px;">${course.name}</td>
      <td style="font-size: 16px;">${course.lecturer}</td>
    `;
    tableBody.appendChild(row);
  });
}

// 筛选函数
function filterCourses() {
  const searchInput = document.getElementById('courseSearch');
  const keyword = searchInput.value.toLowerCase().trim();
  
  // 筛选name包含关键词的课程,不区分大小写
  const filteredData = courseData.filter(course => 
    course.name.toLowerCase().includes(keyword)
  );
  
  // 重新渲染筛选后的表格
  renderTable(filteredData);
}

// 页面加载时先渲染全部数据
document.addEventListener('DOMContentLoaded', () => {
  renderTable(courseData);
  // 给搜索框添加输入监听,实时筛选
  document.getElementById('courseSearch').addEventListener('input', filterCourses);
});

功能说明

  • 输入框实时响应:只要你在搜索框里输入内容,表格会立刻显示名称包含关键词的课程,完全不区分大小写
  • 清空输入框就会自动回到全部课程的展示状态
  • 代码里的样式你可以根据自己的需求调整,比如输入框的宽度、表格字体大小这些都能改

这样就能实现你要的简易筛选搜索功能啦!

内容的提问来源于stack exchange,提问作者l0veisreal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:59:21