javascriptfunctionhrefarticle

Problem with find correctly article using the selector


Can you help me? what am i doing wrong so i can`t chceck correct article without load the page. I marked this line of code as repairable. This is the part(/* [FIX THIS?!] find the correct article using the selector (value of 'href' attribute) */ const targetArticle = document.querySelector("href"); console.log("kliknieto: ", targetArticle);) Thank you in advance for your help:

"use strict";

function titleClickHandler(event) {
  event.preventDefault();
  const clickedElement = this;

  /* [DONE] remove class 'active' from all article links  */
  const activeLinks = document.querySelectorAll(".titles a.active");

  for (let activeLink of activeLinks) {
    activeLink.classList.remove("active");
  }
  /* [DONE] add class 'active' to the clicked link */
  clickedElement.classList.add("active");
  console.log("clickedElement:", clickedElement);
  /* [DONE] remove class 'active' from all articles */
  const activeArticles = document.querySelectorAll("article");

  for (let activeArticle of activeArticles) {
    activeArticle.classList.remove("active");
  }
  /* [DONE] get 'href' attribute from the clicked link */
  const articleSelector = clickedElement.getAttribute("href");
  console.log("was clicked:", articleSelector);
  /* [FIX THIS?!] find the correct article using the selector (value of 'href' attribute) */
  const targetArticle = document.querySelector("href");
  console.log("kliknieto: ", targetArticle);
  /* add class 'active' to the correct article */
  targetArticle.classList.add("active");
}

const links = document.querySelectorAll(".titles a");

for (let link of links) {
  link.addEventListener("click", titleClickHandler);
}
@import url("https://fonts.googleapis.com/css?family=Oswald:400,600|Sacramento|Source+Sans+Pro:300&subset=latin-ext");
/* Variables */
/* Global */
*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  background: #fff;
  font-family: "Source Sans Pro", sans-serif;
  color: #444;
  font-weight: 300;
  font-size: 16px;
  line-height: 1.7;
}

.container {
  max-width: 1140px;
  margin: 0 auto;
}

.section-title {
  font-size: 22px;
  text-transform: uppercase;
  font-family: "Oswald", sans-serif;
  font-weight: 600;
}

.section-title span {
  text-transform: none;
  font-weight: 400;
  color: #777777;
}

/* Layout */
.wrapper {
  display: -ms-flexbox;
  display: flex;
  margin-left: 10px;
}

.sidebar {
  -ms-flex: 1 0 0px;
      flex: 1 0 0;
}

.posts {
  -ms-flex: 2 0 0px;
      flex: 2 0 0;
}

.sidebar,
.posts {
  background: #fff;
  margin-right: 10px;
  padding: 40px;
  border: 1px solid #444;
  border-radius: 5px;
}

/* Logo */
.logo {
  font-family: "Sacramento", cursive;
  font-weight: 400;
  font-size: 104px;
  line-height: 1;
  text-align: center;
}

/* Lists */
.list {
  list-style-type: none;
  margin: 0;
  padding: 0;
}

.list .active {
  font-weight: bold;
}

.list-horizontal li {
  display: inline-block;
}

/* Authors */
.authors li {
  margin-bottom: 12px;
}

/* Post */
.post {
  display: none;
}

.post.active {
  display: block;
}

.post-author {
  font-style: italic;
}

.post-tags {
  display: -ms-flexbox;
  display: flex;
}

.post-tags p {
  margin: 0 10px 0 0;
}
/*# sourceMappingURL=style.css.map */
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <link rel="stylesheet" href="css/style.css" />
    <meta name="description" content="Small Blog with JavaScript" />
    <meta name="keywords" content="Blog, javaScript, Article" />
    <meta name="author" content="Krzysztof Fila" />
  </head>

  <body>
    <div class="blog">
      <div class="container">
        <h1 class="logo">my blog</h1>
        <main class="wrapper">
          <aside class="sidebar">
            <h2 class="section-title">All posts</h2>
            <ul class="list titles">
              <li>
                <a href="#article-1" class="active"><span>Article 1</span></a>
              </li>
              <li>
                <a href="#article-2" class="active"><span>Article 2</span></a>
              </li>
              <li>
                <a href="#article-3"><span>Article 3</span></a>
              </li>
              <li>
                <a href="#article-4"><span>Article 4</span></a>
              </li>
              <li>
                <a href="#article-5"><span>Article 5</span></a>
              </li>
              <li>
                <a href="#article-6"><span>Article 6</span></a>
              </li>
              <li>
                <a href="#article-7"><span>Article 7</span></a>
              </li>
              <li>
                <a href="#article-8"><span>Article 8</span></a>
              </li>
              <li>
                <a href="#article-9"><span>Article 9</span></a>
              </li>
              <li>
                <a href="#article-10"><span>Article 10</span></a>
              </li>
            </ul>
          </aside>
          <section class="posts">
            <article class="post active" id="article-1">
              <h3 class="post-title">Article 1</h3>
              <p class="post-author">by Marion Berry</p>
              <div class="post-content">
                <p>
                  Duis non dolor efficitur erat interdum fringilla a lobortis
                  dolor. Aenean in massa viverra, pretium augue et, imperdiet
                  diam. Proin varius vitae lectus ut suscipit. Etiam metus
                  lacus, molestie at ante eget, gravida tristique metus. Morbi
                  finibus elit mi, ut aliquam libero tempor eu.
                </p>

                <p>
                  Curabitur a arcu ut nunc ornare tempor. Vestibulum et augue
                  purus. Sed mattis auctor iaculis. Duis placerat tempus nisl,
                  et commodo sem varius sed. Ut ac ultrices leo. Aliquam
                  efficitur augue a scelerisque lacinia. Donec sit amet justo
                  lacus.
                </p>

                <p>
                  Duis tincidunt tellus non lorem molestie lobortis. Ut nec
                  mauris consectetur, convallis nisl vel, venenatis magna. Sed
                  efficitur egestas purus, eu fermentum leo sodales in.
                </p>
              </div>
              <div class="post-tags">
                <p><strong>Tags:</strong></p>
                <ul class="list list-horizontal">
                  <li><a href="#">design</a></li>
                  <li><a href="#">tutorials</a></li>
                </ul>
              </div>
            </article>
            <article class="post" id="article-2">
              <h3 class="post-title">Article 2</h3>
              <p class="post-author">by Theo Tabby</p>
              <div class="post-content">
                <p>
                  Phasellus sollicitudin, arcu vel iaculis ullamcorper, quam leo
                  viverra orci, et faucibus quam sapien vel est. Maecenas ac
                  suscipit elit. Nullam interdum, lorem vitae venenatis
                  pulvinar, ex dui malesuada nunc, tempus cursus enim metus vel
                  nulla.
                </p>

                <p>
                  Integer hendrerit, eros id efficitur dapibus, ante arcu
                  ullamcorper orci, a iaculis felis turpis at purus. Quisque
                  sodales posuere sapien vel consectetur. Duis dui urna, commodo
                  non ante nec, mattis dictum enim. Donec aliquam erat sed diam
                  lobortis, vel gravida lacus laoreet. Phasellus pretium maximus
                  mi, eu posuere justo suscipit vel.
                </p>

                <p>
                  Nam magna nisl, varius in malesuada vitae, facilisis vel
                  metus. Proin rhoncus euismod leo dictum lobortis. Suspendisse
                  non ante sapien.
                </p>
              </div>
              <div class="post-tags">
                <p><strong>Tags:</strong></p>
                <ul class="list list-horizontal">
                  <li><a href="#">news</a></li>
                  <li><a href="#">code</a></li>
                </ul>
              </div>
            </article>
            <article class="post" id="article-3">
              <h3 class="post-title">Article 3</h3>
              <p class="post-author">by George Tuxedo</p>
              <div class="post-content">
                <p>
                  Mauris vel pellentesque turpis, ac sodales nisl. Quisque
                  iaculis mi velit, ut convallis tellus accumsan a. Quisque
                  iaculis, nisi et dignissim tincidunt, nisl eros euismod nulla,
                  finibus laoreet erat enim posuere elit.
                </p>

                <p>
                  Aenean at semper urna. Duis vel sapien molestie, egestas diam
                  consequat, molestie nulla. Praesent a malesuada metus.
                  Praesent et tempus leo.
                </p>
                <p>
                  Mauris in eleifend neque, vitae eleifend velit. Maecenas purus
                  est, bibendum eget imperdiet id, dictum sed ante. Aenean a
                  magna et eros sagittis aliquet.
                </p>
              </div>
              <div class="post-tags">
                <p><strong>Tags:</strong></p>
                <ul class="list list-horizontal">
                  <li><a href="#">news</a></li>
                  <li><a href="#">reviews</a></li>
                  <li><a href="#">design</a></li>
                </ul>
              </div>
            </article>
            <article class="post" id="article-4">
              <h3 class="post-title">Article 4</h3>
              <p class="post-author">by Kitty Toebean</p>
              <div class="post-content">
                <p>
                  Morbi vel cursus nulla, vel varius mauris. Suspendisse sed
                  elit sit amet risus faucibus vestibulum ut sit amet purus.
                  Donec orci est, condimentum ut quam quis, scelerisque
                  fringilla ligula.
                </p>

                <p>
                  Quisque bibendum nisl id quam sagittis, id pretium dolor
                  scelerisque. Suspendisse non odio nec velit dapibus placerat
                  non a libero.
                </p>

                <p>
                  Vivamus at tristique ex, feugiat sagittis ex. Cras cursus,
                  ipsum et efficitur commodo, urna sapien rutrum magna, quis
                  sodales justo ligula eget nunc. In hac habitasse platea
                  dictumst.
                </p>
              </div>
              <div class="post-tags">
                <p><strong>Tags:</strong></p>
                <ul class="list list-horizontal">
                  <li><a href="#">tutorials</a></li>
                  <li><a href="#">code</a></li>
                  <li><a href="#">design</a></li>
                </ul>
              </div>
            </article>
            <article class="post" id="article-5">
              <h3 class="post-title">Article 5</h3>
              <p class="post-author">by Marion Berry</p>
              <div class="post-content">
                <p>
                  Suspendisse sem eros, euismod condimentum arcu ac, consequat
                  fermentum orci. Nam convallis lacus nec interdum vestibulum.
                  Vestibulum luctus, quam eu tristique ornare, lorem nibh
                  sodales enim, vitae tempor dolor ante vitae tortor.
                </p>

                <p>
                  Duis venenatis metus quis luctus lobortis. In porttitor ipsum
                  eget ligula aliquam ornare. Cras malesuada urna id volutpat
                  sodales.
                </p>

                <p>
                  Donec lobortis ultricies turpis, eu viverra magna gravida
                  quis. Fusce sit amet pretium nulla. Duis rutrum metus vel
                  libero sodales, pellentesque varius ex pulvinar.
                </p>
              </div>
              <div class="post-tags">
                <p><strong>Tags:</strong></p>
                <ul class="list list-horizontal">
                  <li><a href="#">design</a></li>
                  <li><a href="#">reviews</a></li>
                </ul>
              </div>
            </article>
            <article class="post" id="article-6">
              <h3 class="post-title">Article 6</h3>
              <p class="post-author">by George Tuxedo</p>
              <div class="post-content">
                <p>
                  Donec posuere iaculis ante sed hendrerit. Lorem ipsum dolor
                  sit amet, consectetur adipiscing elit. Quisque hendrerit neque
                  nec urna tincidunt, quis vehicula dui vulputate. Morbi est
                  sapien, auctor ut lectus eu, placerat viverra lorem.
                </p>

                <p>
                  Cras consectetur at erat id accumsan. Suspendisse lacinia in
                  nulla quis vulputate. Nunc vitae consectetur augue. Nam ut
                  vehicula mi. Aliquam tristique, purus in hendrerit porta, elit
                  lectus finibus mi, vel malesuada nisl lectus a libero.
                </p>

                <p>
                  Nam quis efficitur ante. Sed eget purus quis ex commodo porta
                  eu sit amet dolor. Mauris tellus nisl, dictum nec est vitae,
                  condimentum ornare ante. Fusce ornare hendrerit maximus. In
                  maximus rhoncus justo.
                </p>
              </div>
              <div class="post-tags">
                <p><strong>Tags:</strong></p>
                <ul class="list list-horizontal">
                  <li><a href="#">reviews</a></li>
                  <li><a href="#">code</a></li>
                </ul>
              </div>
            </article>
            <article class="post" id="article-7">
              <h3 class="post-title">Article 7</h3>
              <p class="post-author">by Kitty Toebean</p>
              <div class="post-content">
                <p>
                  Donec eleifend mauris ac nisl fermentum, ac fermentum turpis
                  dignissim. Aliquam diam nisl, imperdiet a varius eget,
                  lobortis sed nisi. Nullam suscipit ipsum sed magna blandit,
                  sed pellentesque urna malesuada.
                </p>

                <p>
                  Duis vestibulum arcu et lectus viverra porta. Praesent tempor
                  lacus eget quam mattis, sit amet venenatis diam ultrices.
                  Morbi gravida sapien quis ligula tincidunt, vel sagittis erat
                  ultrices.
                </p>

                <p>
                  Ut orci tellus, laoreet ac diam ut, tempus bibendum nisi. Nam
                  egestas sagittis nibh. Curabitur tristique dui quis egestas
                  pretium. Duis eu felis orci.
                </p>
              </div>
              <div class="post-tags">
                <p><strong>Tags:</strong></p>
                <ul class="list list-horizontal">
                  <li><a href="#">code</a></li>
                  <li><a href="#">news</a></li>
                </ul>
              </div>
            </article>
            <article class="post" id="article-8">
              <h3 class="post-title">Article 8</h3>
              <p class="post-author">by Theo Tabby</p>
              <div class="post-content">
                <p>
                  Praesent quis imperdiet erat. Curabitur tempor sapien a
                  interdum malesuada. Proin libero erat, sagittis a sollicitudin
                  eget, pulvinar nec risus. Cras et suscipit sem.
                </p>

                <p>
                  Maecenas consequat diam nec sollicitudin congue. Aenean
                  porttitor porttitor quam, condimentum interdum metus congue
                  sed. Donec at nulla ipsum.
                </p>

                <p>
                  Mauris non congue dui. Aenean ac eros vitae massa vulputate
                  aliquet ut ac elit. Morbi iaculis auctor nunc aliquet luctus.
                  Nunc tincidunt sem dui, quis interdum leo pellentesque eget.
                  Fusce id leo varius, imperdiet nunc vitae, tristique mi.
                  Mauris quis interdum justo. Mauris auctor purus eu leo
                  faucibus feugiat. Nulla at odio vitae leo semper blandit.
                </p>
              </div>
              <div class="post-tags">
                <p><strong>Tags:</strong></p>
                <ul class="list list-horizontal">
                  <li><a href="#">news</a></li>
                  <li><a href="#">design</a></li>
                  <li><a href="#">tutorials</a></li>
                </ul>
              </div>
            </article>
            <article class="post" id="article-9">
              <h3 class="post-title">Article 9</h3>
              <p class="post-author">by Marion Berry</p>
              <div class="post-content">
                <p>
                  Tam et facilisis purus. Donec vulputate est quis lobortis
                  posuere. Nunc vitae lorem ut odio faucibus pulvinar nec in
                  justo. Ut ut ante ac tellus ornare tempus. Nunc maximus,
                  tortor et dictum convallis, nunc libero posuere leo,
                  scelerisque ultrices arcu sapien ut tellus.
                </p>

                <p>
                  Fusce lacinia augue massa, non tincidunt tortor auctor quis.
                  Vestibulum ut pretium nisl. Etiam id tellus tempus, commodo
                  ligula vehicula, porta magna.
                </p>

                <p>
                  Donec fringilla blandit dolor vel aliquet. Fusce tortor
                  sapien, lobortis eu vehicula sit amet, dignissim et lectus. In
                  ullamcorper metus vel massa fermentum, at fermentum dui
                  sollicitudin. Nullam lacinia elit vel tortor ullamcorper
                  pulvinar.
                </p>
              </div>
              <div class="post-tags">
                <p><strong>Tags:</strong></p>
                <ul class="list list-horizontal">
                  <li><a href="#">news</a></li>
                  <li><a href="#">tutorials</a></li>
                </ul>
              </div>
            </article>
            <article class="post" id="article-10">
              <h3 class="post-title">Article 10</h3>
              <p class="post-author">by George Tuxedo</p>
              <div class="post-content">
                <p>
                  Aliquam erat volutpat. Ut non eleifend lectus. Donec suscipit
                  tellus tempor, ornare dui id, hendrerit neque. Phasellus
                  lacinia laoreet dui in luctus. Sed hendrerit, magna sit amet
                  varius tempor, augue augue scelerisque est, non scelerisque
                  mauris libero eu sapien.
                </p>

                <p>
                  Sed at sapien in quam sollicitudin aliquam. In interdum metus
                  a mi porttitor luctus. Sed commodo, arcu id lacinia posuere,
                  felis elit pharetra urna, at feugiat est orci sit amet libero.
                  Quisque in nisl est. Nullam vehicula at lectus non luctus.
                  Cras aliquam neque magna, at varius nisi egestas ut.
                </p>

                <p>
                  Rhoncus purus nulla, non auctor lacus placerat ut. Aliquam
                  condimentum eget magna ac gravida. Etiam egestas faucibus urna
                  et finibus. Cras vel tellus vel magna suscipit euismod.
                  Maecenas id arcu ante. Duis iaculis scelerisque erat, at
                  ullamcorper arcu consectetur eu. Fusce aliquam diam at arcu
                  pharetra, vel fermentum nunc lobortis.
                </p>
              </div>
              <div class="post-tags">
                <p><strong>Tags:</strong></p>
                <ul class="list list-horizontal">
                  <li><a href="#">code</a></li>
                  <li><a href="#">design</a></li>
                  <li><a href="#">news</a></li>
                  <li><a href="#">reviews</a></li>
                </ul>
              </div>
            </article>
          </section>
          <aside class="sidebar">
            <h2 class="section-title">Tags</h2>
            <ul class="list tags">
              <li><a href="#">design</a> <span>(6)</span></li>
              <li><a href="#">code</a> <span>(5)</span></li>
              <li><a href="#">tutorials</a> <span>(4)</span></li>
              <li><a href="#">reviews</a> <span>(4)</span></li>
              <li><a href="#">news</a> <span>(6)</span></li>
            </ul>
            <h2 class="section-title">Authors</h2>
            <ul class="list authors">
              <li>
                <a href="#">
                  <span class="author-name">Kitty Toebean</span>
                </a>
              </li>
              <li>
                <a href="#">
                  <span class="author-name">Theo Tabby</span>
                </a>
              </li>
              <li>
                <a href="#">
                  <span class="author-name">George Tuxedo</span>
                </a>
              </li>
              <li>
                <a href="#">
                  <span class="author-name">Marion Berry</span>
                </a>
              </li>
            </ul>
          </aside>
        </main>
      </div>
    </div>
    <script src="js/script.js"></script>
  </body>
</html>


Solution

  • you have a bug towards the end. use this

    const targetArticle = document.querySelector(articleSelector);
    

    instead of

    const targetArticle = document.querySelector("href");