Advertisement
bebo231312312321

Untitled

Oct 27th, 2024
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function attachEvents() {
  2.     const elements = {
  3.         posts: document.querySelector('#posts'),
  4.         comments: document.querySelector('#post-comments'),
  5.         postTitle: document.getElementById('post-title'),
  6.         postBody: document.getElementById('post-body')
  7.     };
  8.  
  9.     document.querySelector('#btnLoadPosts').addEventListener('click', loadPosts);
  10.     document.querySelector('#btnViewPost').addEventListener('click', viewPost);
  11.  
  12.     async function loadPosts() {
  13.         const data = await (await fetch('http://localhost:3030/jsonstore/blog/posts')).json();
  14.         elements.posts.innerHTML = Object.entries(data)
  15.             .map(([key, {title, body}]) =>
  16.                 `<option value="${key}" data-body="${body}">${title}</option>`
  17.             ).join('');
  18.     }
  19.  
  20.     async function viewPost() {
  21.         const selected = elements.posts.selectedOptions[0];
  22.         elements.postTitle.textContent = selected.textContent;
  23.         elements.postBody.textContent = selected.dataset.body;
  24.  
  25.         const comments = await (await fetch('http://localhost:3030/jsonstore/blog/comments')).json();
  26.         elements.comments.innerHTML = Object
  27.             .values(comments)
  28.             .filter(c => c.postId === selected.value)
  29.             .map(c => `<li id="${c.id}">${c.text}</li>`)
  30.             .join('');
  31.     }
  32. }
  33.  
  34. attachEvents();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement