STEP GUIDE · Solution

這個步驟要做什麼、改哪裡、怎麼看結果

這一步聚焦 TASK-03;下方只比較「Checkpoint 2 → Solution」的真實異動。

01

三項 Task 進度

TASK-01已完成

依關鍵字與價格查找產品

預計修改:script.js

完成後:可以關鍵字、價格或兩者查找產品

TASK-02已完成

分頁並渲染查找結果

預計修改:script.js

完成後:查找結果每頁最多三筆,卡片與頁碼同步

TASK-03本步驟處理

限制上一頁與下一頁邊界

預計修改:script.js

完成後:首末頁按鈕正確停用,無查找結果時顯示 0 / 0 且兩鍵停用

02

HTML、CSS、JavaScript 與文件實際異動

展開檔案卡查看必要差異;只有程式碼區可以橫向捲動。

HTML本步驟無異動

檔案:index.html

修改前

前一步與本步驟沒有實質差異。

修改後

本步驟不需修改此語言。
CSS本步驟無異動

檔案:style.css

修改前

前一步與本步驟沒有實質差異。

修改後

本步驟不需修改此語言。
JavaScript本步驟有異動

檔案:script.js

修改前

  if (getFilteredProducts().length === 0) {
  info.textContent = `第 ${page} 頁`;
function updateControls() {}
  page -= 1;
  render();
  page += 1;
  render();

修改後

function getTotalPages() {
  return Math.ceil(getFilteredProducts().length / pageSize);
}
  const totalPages = getTotalPages();
  if (totalPages === 0) {
    page = 0;
  page = Math.min(Math.max(page, 1), totalPages);
  info.textContent = `第 ${page} / ${totalPages} 頁`;
function updateControls() {
  const totalPages = getTotalPages();
  prev.disabled = totalPages === 0 || page <= 1;
  next.disabled = totalPages === 0 || page >= totalPages;
}
  if (page > 1) {
    page -= 1;
    render();
  }
  if (page < getTotalPages()) {
    page += 1;
    render();
  }
README/其他文件本練習未使用

檔案:README.md

修改前

本練習沒有這個檔案。

修改後

本步驟不需修改此語言。
03

怎麼看到結果

  1. 準備

    先重新整理本階段頁面,記住目前畫面,再開始操作。

  2. 操作

    到第一頁與最後一頁確認邊界;再輸入不存在的關鍵字,確認顯示無結果、第 0 / 0 頁且兩個按鈕都停用。

  3. 預期

    首末頁按鈕正確停用,空資料不會顯示第 1 / 0 頁

Solution TASK-03

限制上一頁與下一頁邊界

完成後可見:首末頁按鈕正確停用,無查找結果時顯示 0 / 0 且兩鍵停用

本週商品