题目: 写一个笔记列表页面(列表展示10个笔记,假设id 1-10),每个笔记信息通过 /api/note/{id}获取详细信息, 点击一个"刷新"按钮可以重新获取笔记信息,并按笔记最后更改时间倒序排列。(用原生JS写
时间: 2024-09-14 10:03:53 浏览: 45
前端学习笔记,做一个简单的网站-在box元素中动态创建无序列表,学习代码
要创建一个笔记列表页面,并且满足您提出的条件,我们可以分为以下几个步骤来实现:
1. 创建笔记列表的HTML结构。
2. 使用JavaScript(原生JS)编写逻辑以获取和展示笔记信息。
3. 实现点击"刷新"按钮以重新获取笔记信息的功能。
4. 对笔记信息按最后更改时间进行倒序排列。
下面是一个简单的实现方案:
**HTML部分(index.html)**
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>笔记列表页面</title>
</head>
<body>
<h1>笔记列表</h1>
<ul id="note-list"></ul>
<button id="refresh-btn">刷新</button>
<script src="script.js"></script>
</body>
</html>
```
**JavaScript部分(script.js)**
```javascript
document.addEventListener('DOMContentLoaded', function() {
const noteListElement = document.getElementById('note-list');
const refreshBtn = document.getElementById('refresh-btn');
// 假设有一个函数fetchNote用于获取笔记信息
function fetchNote(id) {
// 这里应该是调用API的代码,下面仅为示例
const noteInfo = {
id: id,
content: "这是笔记内容" + id,
lastUpdated: new Date().getTime() - id * 1000 // 假设更新时间与id相关
};
return noteInfo;
}
// 初始化笔记列表
function initNotes() {
for (let i = 1; i <= 10; i++) {
const note = fetchNote(i);
noteListElement.innerHTML += `<li>${note.content} (最后更新时间:${new Date(note.lastUpdated).toLocaleString()})</li>`;
}
sortNotesByLastUpdated();
}
// 刷新笔记列表
refreshBtn.addEventListener('click', function() {
noteListElement.innerHTML = '';
initNotes();
});
// 按照最后更新时间倒序排列笔记
function sortNotesByLastUpdated() {
const notes = [...noteListElement.children];
notes.sort((a, b) => {
const lastUpdatedA = parseInt(a.innerText.split(' ')[6].replace(/[^0-9]/g, ''), 10);
const lastUpdatedB = parseInt(b.innerText.split(' ')[6].replace(/[^0-9]/g, ''), 10);
return lastUpdatedB - lastUpdatedA;
});
noteListElement.innerHTML = '';
notes.forEach(note => noteListElement.appendChild(note));
}
// 初始化页面
initNotes();
});
```
这段代码实现了笔记列表的基本功能。需要注意的是,实际中`fetchNote`函数应该通过AJAX调用后端API `/api/note/{id}`来获取笔记的详细信息。这里为了示例的简洁性,我们直接构造了一个假的笔记对象。在实际应用中,您需要根据实际情况来调整这部分代码。
阅读全文