728x90

URL에 쿼리 더하기

url.searchParams.set("page", page)

 

https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams

 

URLSearchParams - Web APIs | MDN

The URLSearchParams interface defines utility methods to work with the query string of a URL.

developer.mozilla.org

 

 

페이지네이션

const paginationRender = () => {
  const totalPage = Math.ceil(totalResult / pageSize);
  const pageGroup = Math.ceil(page / pageGroupSize);
  const lastPage =
    pageGroup * pageGroupSize > totalPage
      ? totalPage
      : pageGroup * pageGroupSize;
  const firstPage =
    lastPage - (pageGroupSize - 1) < 1 ? 1 : lastPage - (pageGroupSize - 1);
  let paginationHTML = ``;
  if (page !== 1) {
    paginationHTML = `
  <li class="page-item" onclick="moveToPage(${firstPage})"><a class="page-link" href="#">&lt&lt</a></li>
  <li class="page-item" onclick="moveToPage(${
    page - 1
  })"><a class="page-link" href="#">&lt</a></li>`;
  }

  for (let i = firstPage; i <= lastPage; i++) {
    paginationHTML += `
<li class="page-item ${
      i === page ? "active" : ""
    }" onclick="moveToPage(${i})"><a class="page-link" href="#">${i}</a></li>
`;
  }

  if (page !== lastPage)
    paginationHTML += `<li class="page-item" onclick="moveToPage(${
      page + 1
    })"><a class="page-link" href="#">&gt</a></li>
  <li class="page-item" onclick="moveToPage(${lastPage})"><a class="page-link" href="#">&gt&gt</a></li>`;

  document.querySelector(".pagination").innerHTML = paginationHTML;
};

 

- 카테고리 관련

// 카테고리 할당
const menus = document.querySelectorAll(".menus button");
menus.forEach((menu) =>
  menu.addEventListener("click", (e) => {
    // 선택된 카테고리 외 class 제거
    menus.forEach((otherMenu) => otherMenu.classList.remove("selected"));
    // 선택된 카테고리 class 할당
    e.target.classList.add("selected");
    getNewsCategory(e);
  })
);
const getNewsCategory = (e) => {
  category = e.target.textContent.toLowerCase();
  url.searchParams.set("category", category);
  getNews();
};

 

- 커서올리면 삭제

searchInput.addEventListener("focus", () => {
  searchInput.value = "";
});

 

728x90

'코딩 > JavaScript' 카테고리의 다른 글

localStorage  (0) 2024.02.26
6자리 랜덤 인증번호 생성  (0) 2024.02.24
코알누 - API 호출  (0) 2024.02.19
ES6 새로운 문법 (코알누)  (0) 2024.02.15
코알누 JS  (0) 2024.02.05

+ Recent posts