JavaScript DOM¶
JavaScript HTML-be ágyazása¶
A JavaScript kódot a HTML dokumentum <script> elemében vagy külső fájlban helyezhetjük el. A <script> elemet a <head> vagy a <body> részben is elhelyezhetjük, de a legjobb gyakorlat a <body> végén elhelyezni, hogy a dokumentum többi része előbb betöltődjön.
Példa
Bevezetés a DOM-ba¶
A DOM (Document Object Model) egy interfész, amely a HTML vagy XML dokumentum szerkezetét írja le. A böngészők a DOM-on keresztül biztosítanak hozzáférést a dokumentum struktúrájához, amely fa formájában van ábrázolva.
A DOM fa a következő elemekből áll:
- Element: HTML elemek, mint például
<div>,<p>,<a>. - Attribute: Egy elem attribútumai, mint például id, class, stb.
- Text: Az elemek közötti szöveg.
DOM navigáció¶
document objektum¶
A document objektum az egész HTML dokumentumot képviseli, és ez az, amin keresztül a DOM-ot manipulálhatjuk.
Példák:
Elem hivatkozás¶
Készítsünk egy egyszerű HTML fájlt!
getElementById¶
Az id attribútum alapján keres egyetlen elemet.
const myDiv = document.getElementById("myDiv");
console.log(myDiv.textContent); // "Ez egy div azonosítóval"
myDiv.style.color = "blue"; // A szöveg kékké válik
Eredmény
A #myDiv szövege kékre változik.
querySelector¶
Az első olyan elemet adja vissza, ami illeszkedik a CSS-szerű szelektorra.
const firstParagraph = document.querySelector(".myClass");
firstParagraph.style.fontWeight = "bold"; // Félkövér lesz a szöveg
Eredmény
Az első p.myClass szövege félkövér lesz.
querySelectorAll¶
Minden olyan elemet visszaad, ami illeszkedik a CSS-szerű szelektorra (NodeList formájában).
const allParagraphs = document.querySelectorAll(".myClass");
allParagraphs.forEach((paragraph) => {
paragraph.style.fontWeight = "bold";
});
Eredmény
Az összes p.myClass szövege félkövér lesz.
Stílus módosítása¶
A DOM-on keresztül módosíthatjuk az elemek stílusát.
Példa
| Művelet | JavaScript kód | Leírás |
|---|---|---|
| Szöveg színe | element.style.color = "red"; |
Beállítja az elem szövegének színét. |
| Háttérszín | element.style.backgroundColor = "yellow"; |
Beállítja az elem háttérszínét. |
| Betűméret | element.style.fontSize = "20px"; |
Beállítja az elem szövegének betűméretét. |
| Szélesség | element.style.width = "200px"; |
Beállítja az elem szélességét. |
| Magasság | element.style.height = "100px"; |
Beállítja az elem magasságát. |
| Szegély színe | element.style.borderColor = "blue"; |
Megváltoztatja az elem szegélyének színét. |
| Szegély vastagság | element.style.borderWidth = "2px"; |
Megváltoztatja az elem szegélyének vastagságát. |
| Szegély stílusa | element.style.borderStyle = "dashed"; |
Beállítja az elem szegélyének stílusát (pl. solid, dashed, dotted). |
| Szövegközépre igazítás | element.style.textAlign = "center"; |
Középre igazítja az elem szövegét. |
| Láthatóság | element.style.display = "none"; |
Elrejti az elemet. |
| Láthatóvá tétel | element.style.display = "block"; |
Láthatóvá teszi az elemet (általában block vagy inline). |
| Szöveg dőlt stílusban | element.style.fontStyle = "italic"; |
A szöveg dőlt formázású lesz. |
| Szöveg vastag stílusban | element.style.fontWeight = "bold"; |
A szöveg vastag betűstílusú lesz. |
| Átlátszóság | element.style.opacity = "0.5"; |
Az elem áttetszőségét állítja (érték: 0.0 - 1.0). |
| Szövegárnyék | element.style.textShadow = "2px 2px 5px gray"; |
Árnyékot ad a szövegnek (X, Y eltolás, elmosás, szín). |
| Térköz (padding) | element.style.padding = "10px"; |
Beállítja az elem belső térközét. |
| Margó (margin) | element.style.margin = "15px"; |
Beállítja az elem külső margóját. |
| Pozíció (fix) | element.style.position = "fixed"; |
Az elem pozícióját fixre állítja, a képernyőhöz igazítva. |
| Elhelyezkedés | element.style.top = "50px"; element.style.left = "20px"; |
Megadja az elem pozícióját (csak akkor működik, ha a position meg van adva). |
Feladatok¶
Színezés feladat
Van egy HTML dokumentumod, amely több azonos osztályú <p> elemet tartalmaz.
Írj egy JavaScript kódot, amely az összes ilyen <p> elemet zöldre színezi!
Számolás feladat
Készíts egy HTML oldalt, ahol különböző típusú elemek találhatóak (pl. <div>, <p>, <span>).
Írj egy JavaScript kódot, amely megszámolja és kiírja a konzolra, hogy hány <p> és hány <span> elem található az oldalon.
Dinamikus lista frissítés
Van egy HTML lista (<ul>), amely tartalmaz néhány <li> elemet. Írj egy JavaScript kódot, amely az összes <li> elemet megváltoztatja úgy, hogy a tartalmuk elé egy sorszámot illeszt (pl. "1. Alma", "2. Körte", stb.).
Amerikai zászló
Készítsd el az amerikai zászlót úgy, hogy ne módosítsd a HTML kódot, kizárólag JavaScriptet használj!