,每一列对应不同的字段,比如姓名、专业、联系方式等。
小明:那我可以写一个示例代码吗?
小李:当然可以。下面是一个简单的HTML表格示例:
<table border="1">
<tr>
<th>姓名</th>
<th>专业</th>
<th>联系方式</th>
</tr>
<tr>
<td>张三</td>
<td>计算机科学</th>
<td>zhangsan@example.com</td>
</tr>
<tr>
<td>李四</td>
<td>电子信息</td>
<td>lisi@example.com</td>
</tr>
</table>

小明:这个表格看起来很清晰。不过我想让它更美观一点,该怎么加样式呢?
小李:你可以用CSS来美化表格。比如设置边框颜色、字体大小、背景色等。下面是一个简单的CSS示例:
小明:这样表格看起来确实好很多了。那如果我想让用户能够添加新的校友信息怎么办?
小李:这就需要用到JavaScript来实现动态交互。你可以添加一个表单,让用户输入信息,然后用JavaScript将数据添加到表格中。
小明:那具体的代码怎么写呢?
小李:下面是一个简单的示例,包含一个表单和一个按钮,点击按钮后会将输入的信息添加到表格中:
<form id="alumniForm">
<input type="text" id="name" placeholder="姓名">
<input type="text" id="major" placeholder="专业">
<input type="email" id="email" placeholder="联系方式">
<button type="submit">添加校友</button>
</form>
<table id="alumniTable">
<tr>
<th>姓名</th>
<th>专业</th>
<th>联系方式</th>
</tr>
</table>
<script>
document.getElementById('alumniForm').addEventListener('submit', function(e) {
e.preventDefault();
const name = document.getElementById('name').value;
const major = document.getElementById('major').value;
const email = document.getElementById('email').value;
const row = document.createElement('tr');
row.innerHTML = `
<td>${name}</td>
<td>${major}</td>
<td>${email}</td>
`;
document.getElementById('alumniTable').appendChild(row);
// 清空输入
document.getElementById('name').value = '';
document.getElementById('major').value = '';
document.getElementById('email').value = '';
});
</script>
小明:这太棒了!这样就可以实时更新表格了。那如果我想保存这些数据,不刷新页面就消失怎么办?
小李:这是一个很好的问题。你可以使用本地存储(localStorage)或者后端数据库来持久化数据。如果是前端项目,可以先尝试用localStorage。
小明:那如何用localStorage来保存数据呢?
小李:下面是一个简单的例子,每次添加新校友时,都会将数据保存到localStorage中,并在页面加载时重新渲染表格:
<script>
// 页面加载时读取localStorage
window.onload = function() {
const alumniData = JSON.parse(localStorage.getItem('alumni')) || [];
renderTable(alumniData);
};
function renderTable(data) {
const tableBody = document.getElementById('alumniTable');
tableBody.innerHTML = `
<tr>
<th>姓名</th>
<th>专业</th>
<th>联系方式</th>
</tr>
`;
data.forEach(alumni => {
const row = document.createElement('tr');
row.innerHTML = `
<td>${alumni.name}</td>
<td>${alumni.major}</td>
<td>${alumni.email}</td>
`;
tableBody.appendChild(row);
});
}
document.getElementById('alumniForm').addEventListener('submit', function(e) {
e.preventDefault();
const name = document.getElementById('name').value;
const major = document.getElementById('major').value;
const email = document.getElementById('email').value;
const alumniData = JSON.parse(localStorage.getItem('alumni')) || [];
alumniData.push({ name, major, email });
localStorage.setItem('alumni', JSON.stringify(alumniData));
renderTable(alumniData);
// 清空输入
document.getElementById('name').value = '';
document.getElementById('major').value = '';
document.getElementById('email').value = '';
});
</script>
小明:原来如此!这样数据就不会丢失了。那如果我想让表格支持搜索和排序功能呢?
小李:那你可以添加一个搜索框,根据输入内容过滤表格中的条目。同时,可以为表头添加点击事件,实现按字段排序的功能。
小明:那具体怎么实现搜索功能呢?
小李:下面是一个简单的搜索功能示例,使用JavaScript监听输入事件,并根据输入内容筛选表格行:
<input type="text" id="searchInput" placeholder="搜索姓名...">
<script>
document.getElementById('searchInput').addEventListener('input', function() {
const filter = this.value.toLowerCase();
const rows = document.querySelectorAll('#alumniTable tr:not(:first-child)');
rows.forEach(row => {
const name = row.children[0].textContent.toLowerCase();
if (name.includes(filter)) {
row.style.display = '';
} else {
row.style.display = 'none';
}
});
});
</script>
小明:这很有用!那排序功能怎么实现呢?
小李:排序功能可以通过点击表头来实现。你可以为每个表头绑定点击事件,然后根据对应的字段对数据进行排序,并重新渲染表格。
小明:听起来有点复杂,但值得尝试。那有没有什么工具或框架可以简化开发?
小李:如果你希望提高开发效率,可以考虑使用前端框架如React或Vue。它们可以帮助你更好地管理状态和组件,使代码更易维护。
小明:那我现在应该先专注于原生JS实现,然后再考虑框架,对吧?
小李:没错!掌握原生JS是基础,之后再学习框架会更容易理解。你现在做的这个项目已经涵盖了前端开发的核心概念,包括HTML、CSS、JavaScript、DOM操作和数据存储。
小明:谢谢你!我现在对校友管理系统的网页版开发有了更清晰的认识。
小李:不客气!继续加油,你可以把项目扩展得更完善,比如加入编辑、删除功能,甚至连接后端API实现真正的数据持久化。
小明:嗯,我会继续努力的!
本站知识库部分内容及素材来源于互联网,如有侵权,联系必删!