Hoppa till innehåll

Översikt

Nu är det dags att programmera mot ett av webbläsarens äldsta, men samtidigt viktigaste, API:er: DOM, Document Object Model. Veckans tre artiklar går igenom hur du hittar i dokumentets träd, hur du ändrar i det och hur du skriver HTML som mallar i stället för att bygga den element för element. Information om veckans upplägg annonseras löpande i kursens Zulip-kanal.

Tisdagen i kursvecka 9 började med frågor om den muntliga examinationen av A3. Därefter gick Mats och Mikael igenom veckans tre artiklar om DOM-trädet, levande samlingar och HTML templates, och Daniel informerade om valet av studentrepresentant. Passet avslutades med Mikaels exempelprogram Pixeldex, där samma sida byggs först med createElement och sedan med en mall.

1:30:21

Exemplet, Pixeldex med DOM och HTML template, kan du forka och följa själv. Där läser och ändrar du DOM:en i konsolen och bygger sedan samma sida med createElement och med en <template>, i fem steg med facit.

Torsdagen i kursvecka 9 började med frågor om A3: deadline, återkoppling på A2 och hur den muntliga examinationen går till. Därefter livekodade Mikael i övningsuppgiften Tiny Tunes, från steg 1 till en fri lek med bilder, cloneNode och ett filter för stegen, som Mats kommenterade. Passet avslutades med två av veckans utmaningar om element och noder.

1:30:48

Veckans teori finns samlad i tre artiklar. Läs dem i ordning; varje artikel bygger på den föregående.

  1. DOM-trädet – vad DOM är, skillnaden mellan noder och element, hur du väljer ut element och hur du rör dig i trädet.

  2. Att ändra i DOM:en – hur du skapar, flyttar och tar bort noder, sätter text på ett säkert sätt och arbetar med attribut, klasser och stil.

  3. HTML templates – varför HTML ska skrivas som HTML och hur <template>-elementet förbereder dig för nästa veckas webbkomponenter.

Under läsanvisningar hittar du veckans kapitel som ska läsas i kurslitteraturen. Planera upp och dela upp läsningen under veckan.

Under Övningsuppgifter hittar du övningsuppgifter som det är lämpligt att du arbetar med under veckan.

Inspelningen från 2020 tar upp samma stoff som artiklarna, men är delvis inaktuell och har en presentation på engelska. Artiklarna räcker, men vill du se genomgången i rörlig bild finns den kvar här. Sammanfattning och presentation till inspelningen hittar du i samlingen av inspelningar för delkurs B.

Öppna videon på YouTube

1:55:47

HTML Elements and the Document Object Model – DOM-API:et, att välja ut, skapa och ändra noder samt HTML templates. Motsvarar alla tre artiklarna.

Skicka gärna in frågor på förhand via formuläret som du når här:

Nu bör du verkligen vara igång och arbeta med examinationsuppgiften. Kanske bör du faktiskt ha som mål att färdigställa denna under denna kursvecka.

Läs mer om “Examinationsuppgift A3 - Tjugoett” här

Under Utmaningar hittar du tio frågor om noder och element, hur du väljer ut och skapar element, klasser och HTML templates, ett bra sätt att stämma av att du har förstått artiklarna.

Här är ett antal frågor som du kan försöka besvara och diskutera tillsammans med din AI-assistent. Tveka inte att lyfta någon av frågorna till handledningen för att fortsätta diskussionen med lärare och studiekamrater.

  1. Ge en kort förklaring av vad DOM är och hur det hänger ihop med HTML-koden jag skriver. Vad är skillnaden mellan en nod och ett element?
  2. Varför ger firstChild ibland en textnod när jag förväntar mig ett element? Visa ett exempel och hur jag undviker det.
  3. Vad är skillnaden mellan en NodeList och en HTMLCollection, och mellan en levande och en statisk samling? Ge mig ett exempel där skillnaden ger en bugg.
  4. Jag vill lägga till en ul-lista med fem punkter från JavaScript. Visa två sätt, ett med createElement och ett med en <template>, och låt mig avgöra vilket som är lättast att läsa.
  5. Varför är innerHTML riskabelt när innehållet kommer från en användare? Visa ett exempel på en attack och hur textContent stoppar den.
  6. Vad är skillnaden mellan att sätta en klass med className och med classList.add()? När bör jag sätta stil direkt via style i stället för att byta klass?
  7. Förklara vad HTML templates är och hur de förhåller sig till webbkomponenter.

Här följer tips till hur du kan prioritera bland kursmaterialet för att komma igång med veckan.

  1. Det viktiga är att slutföra A3. Vänta inte in i det sista. Satsa på att göra din MR redan nu på fredag så har du extra tid, om det behövs.
  2. Försök prioritera så du också hinner läsa veckans tre artiklar. Du behöver inte komma ihåg varje metodnamn, men ta dig extra tid med den sista artikeln om HTML templates, som nästa vecka bygger vidare på. Inspelningen är frivillig.
  3. När du läst artiklarna så finns det en övningsuppgift på nivån Uppvärmning, Tiny Tunes, där du får möjlighet att testa att programmera mot DOM:en och med HTML templates i webbläsaren. Gör steg 1–7 den här veckan; steg 8–9 hör till nästa veckas webbkomponenter.
CCBY