← Nivå 2 – Trollkarl

Lektion 2 av 8 ⏱ 25 minuter

Din första trollformel: en knapp som gör något

Sidan reagerar på ett klick för första gången. Du lär dig hitta ett element och lyssna på händelser.

Jag visar: de tre stegen i varje trollformel

Nästan allt JavaScript gör på en sida följer tre steg:

  1. Hitta ett element på sidan (en knapp, en rubrik, en bild…),
  2. lyssna på en händelse (ett klick, musen över, text som skrivs…),
  3. gör något (ändra texten, färgen, göm den, visa den…).

Så här ser det ut i kod. I HTML, lägg till en knapp och ett stycke:

<button id="my-button">Click me</button>
<p id="greeting">Nothing has happened yet.</p>

Och i script.js:

// 1. Find the elements by their id
const myButton = document.getElementById("my-button");
const greeting = document.getElementById("greeting");

// 2. Listen for a click on the button
myButton.addEventListener("click", () => {
  // 3. Do something: change the paragraph's text
  greeting.textContent = "The spell works! 🎉";
});

Låt oss bryta ner det nya:

Nu är det din tur 💪

Lägg till din första trollformel på din webbplats. Välj en efter ditt projekt (eller hitta på en egen):

🏫 Skolwebbplats – en "Vad är det till lunch idag?"-knapp

HTML (på startsidan):

<button id="lunch-button">What's for lunch today?</button>
<p id="lunch"></p>

script.js:

const lunchButton = document.getElementById("lunch-button");
const lunch = document.getElementById("lunch");

lunchButton.addEventListener("click", () => {
  lunch.textContent = "Today: pizza and salad! 🍕";
});
🙋 Personlig webbplats – en "Berätta ett skämt"-knapp
<button id="joke-button">Tell me a joke</button>
<p id="joke"></p>
const jokeButton = document.getElementById("joke-button");
const joke = document.getElementById("joke");

jokeButton.addEventListener("click", () => {
  joke.textContent = "Why do programmers prefer dark mode? Because light attracts bugs! 😄";
});
🌍 Resejournal – en "Vart ska vi härnäst?"-knapp
<button id="where-button">Where are we going next?</button>
<p id="where"></p>
const whereButton = document.getElementById("where-button");
const where = document.getElementById("where");

whereButton.addEventListener("click", () => {
  where.textContent = "Packing our bags: we're headed to the beach in Greece! 🌊";
});
⚽ Klubbwebbplats – en "När är nästa match?"-knapp
<button id="match-button">When's the next match?</button>
<p id="match"></p>
const matchButton = document.getElementById("match-button");
const match = document.getElementById("match");

matchButton.addEventListener("click", () => {
  match.textContent = "Saturday at 10:00, home game vs. Riverside. Come cheer us on! 📣";
});

Bonus: styla din knapp i CSS så den ser snygg ut:

button {
  font-size: 16px;
  font-weight: bold;
  padding: 10px 20px;
  border: none;
  border-radius: 999px;
  background-color: #1d4ed8;
  color: white;
  cursor: pointer;
}

button:hover {
  background-color: #1e40af;
}
⚠️

Funkar det inte? Öppna konsolen (F12). De vanligaste misstagen: 1) id i HTML matchar inte exakt namnet i getElementById (även stora/små bokstäver spelar roll), 2) <script> inte längst ner i <body>, 3) en saknad klammerparentes – konsolen berättar radnumret.

Kolla själv: Du klickar på knappen och text dyker upp på sidan. Du kopplade precis ihop alla tre webbspråken: HTML (knappen), CSS (utseendet) och JavaScript (beteendet).

Det här tar du med dig från lektionen