Code Sample 1
This is the code example for 05_02 in the exercise files.
The HTML Document
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>BackpackPacker</title> <link href="https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&family=Work+Sans:wght@100..900&display=swap" rel="stylesheet" /> <link rel="stylesheet" href="../assets/style.css" type="text/css" media="all" /> <script type="module" src="Backpack.js"></script> <script type="module" src="script.js"></script> </head> <body> <header class="siteheader"> <div class="site-title">BackpackPacker</div> <div class="site-description">All backpack packing, all the time.</div> </header> <main class="maincontent"></main> <footer class="sitefooter"> <p> Demo project for JavaScript Essential Training, a LinkedIn Learning course. </p> </footer> </body> </html>
The only difference between these two HTML files is that in the second version, there is no HTML in the body.
The JavaScript file
/** * Traverse the DOM tree using querySelector() and querySelectorAll() * @link https://developer.mozilla.org/en-US/docs/Web/API/Element/querySelector * @link https://developer.mozilla.org/en-US/docs/Web/API/Element/querySelectorAll */ import Backpack from "./Backpack.js"; const everydayPack = new Backpack( "Everyday Backpack", 30, "grey", 15, 26, 26, false, "December 5, 2018 15:00:00 PST", "../assets/images/everyday.svg" ); const main = document.querySelector(".maincontent"); const content = ` <article class="backpack" id="everyday"> <figure class="backpack__image"> <img src=${everydayPack.image} alt="" /> </figure> <h1 class="backpack__name">${everydayPack.name}</h1> <ul class="backpack__features"> <li class="backpack__volume">Volume:<span> ${ everydayPack.volume }l</span></li> <li class="backpack__color">Color:<span> ${everydayPack.color}</span></li> <li class="backpack__age">Age:<span> ${everydayPack.backpackAge()} days old</span></li> <li class="backpack__pockets">Number of pockets:<span> ${ everydayPack.pocketNum }</span></li> <li class="backpack__strap">Left strap length:<span> ${ everydayPack.strapLength.left } inches</span></li> <li class="backpack__strap">Right strap length:<span> ${ everydayPack.strapLength.right } inches</span></li> <li class="backpack__lid">Lid status:<span> ${ everydayPack.lidOpen }</span></li> </ul> </article> `; main.innerHTML = content;