{"id":1253,"date":"2025-09-22T09:26:20","date_gmt":"2025-09-22T07:26:20","guid":{"rendered":"https:\/\/piotrgabriel.pl\/wiki\/?p=1253"},"modified":"2025-09-22T11:50:06","modified_gmt":"2025-09-22T09:50:06","slug":"javascript-cz-8-operacje-na-elementach-dokumentu-i-wlasciwosci-obiektu-style","status":"publish","type":"post","link":"https:\/\/piotrgabriel.pl\/wiki\/javascript-cz-8-operacje-na-elementach-dokumentu-i-wlasciwosci-obiektu-style\/","title":{"rendered":"Javascript cz.8 &#8211; Operacje na elementach dokumentu i w\u0142a\u015bciwo\u015bci obiektu style"},"content":{"rendered":"<p>Praca z DOM (Document Object Model) to podstawa w JavaScript. Dzi\u0119ki metodom takim jak <code>createElement<\/code>, <code>appendChild<\/code> czy <code>replaceChild<\/code> mo\u017cemy dynamicznie zmienia\u0107 zawarto\u015b\u0107 strony. Dodatkowo, poprzez obiekt <code>style<\/code>, sterujemy wygl\u0105dem element\u00f3w HTML bezpo\u015brednio z poziomu skryptu.<\/p>\n<p>W tym wpisie znajdziesz proste wyja\u015bnienia oraz przyk\u0142ady gotowe do uruchomienia.<\/p>\n<p><!--more--><\/p>\n<h2>Operacje na elementach dokumentu<br \/>\n1. document.createElement(element)<\/h2>\n<p>Tworzy nowy element HTML w pami\u0119ci. Nie jest on jeszcze widoczny na stronie, dop\u00f3ki nie zostanie do\u0142\u0105czony do dokumentu.<\/p>\n<p>Przyk\u0142ad 1 \u2013 tworzenie nag\u0142\u00f3wka<\/p>\n<p><code>&lt;div id=\"container\"&gt;&lt;\/div&gt;<\/code><br \/>\n<code>&lt;script&gt;<\/code><br \/>\n<code>let naglowek = document.createElement(\"h1\");<\/code><br \/>\n<code>naglowek.textContent = \"Witaj w JS!\";<\/code><br \/>\n<code>document.getElementById(\"container\").appendChild(naglowek);<\/code><br \/>\n<code>&lt;\/script&gt;<\/code><\/p>\n<p>Przyk\u0142ad 2 \u2013 tworzenie przycisku<\/p>\n<p><code>&lt;div id=\"buttons\"&gt;&lt;\/div&gt;<\/code><br \/>\n<code>&lt;script&gt;<\/code><br \/>\n<code>let btn = document.createElement(\"button\");<\/code><br \/>\n<code>btn.textContent = \"Kliknij mnie!\";<\/code><br \/>\n<code>document.getElementById(\"buttons\").appendChild(btn);<\/code><br \/>\n<code>&lt;\/script&gt;<\/code><\/p>\n<h2>2. document.removeChild(element)<\/h2>\n<p>Usuwa wskazany element z rodzica.<\/p>\n<p>Przyk\u0142ad 1 \u2013 usu\u0144 akapit<\/p>\n<p><code>&lt;div id=\"box\"&gt;<\/code><br \/>\n<code>&lt;p id=\"tekst\"&gt;Ten akapit zostanie usuni\u0119ty&lt;\/p&gt;<\/code><br \/>\n<code>&lt;\/div&gt;<\/code><br \/>\n<code>&lt;script&gt;<\/code><br \/>\n<code>let box = document.getElementById(\"box\");<\/code><br \/>\n<code>let tekst = document.getElementById(\"tekst\");<\/code><br \/>\n<code>box.removeChild(tekst);<\/code><br \/>\n<code>&lt;\/script&gt;<\/code><\/p>\n<p>Przyk\u0142ad 2 \u2013 usu\u0144 pierwszy element listy<\/p>\n<p><code>&lt;ul id=\"lista\"&gt;<\/code><br \/>\n<code>&lt;li&gt;Pierwszy&lt;\/li&gt;<\/code><br \/>\n<code>&lt;li&gt;Drugi&lt;\/li&gt;<\/code><br \/>\n<code>&lt;\/ul&gt;<\/code><br \/>\n<code>&lt;script&gt;<\/code><br \/>\n<code>let lista = document.getElementById(\"lista\");<\/code><br \/>\n<code>lista.removeChild(lista.firstElementChild);<\/code><br \/>\n<code>&lt;\/script&gt;<\/code><\/p>\n<h2>3. document.appendChild(element)<\/h2>\n<p>Dodaje nowy element jako dziecko do wskazanego rodzica.<\/p>\n<p>Przyk\u0142ad 1 \u2013 nowy element listy<\/p>\n<p><code>&lt;ul id=\"lista\"&gt;&lt;\/ul&gt;<\/code><br \/>\n<code>&lt;script&gt;<\/code><br \/>\n<code>let li = document.createElement(\"li\");<\/code><br \/>\n<code>li.textContent = \"Nowy element\";<\/code><br \/>\n<code>document.getElementById(\"lista\").appendChild(li);<\/code><br \/>\n<code>&lt;\/script&gt;<\/code><\/p>\n<p>Przyk\u0142ad 2 \u2013 dodaj obrazek<\/p>\n<p><code>&lt;div id=\"galeria\"&gt;&lt;\/div&gt;<\/code><br \/>\n<code>&lt;script&gt;<\/code><br \/>\n<code>let img = document.createElement(\"img\");<\/code><br \/>\n<code>img.src = \"https:\/\/via.placeholder.com\/100\";<\/code><br \/>\n<code>document.getElementById(\"galeria\").appendChild(img);<\/code><br \/>\n<code>&lt;\/script&gt;<\/code><\/p>\n<h2>4. document.replaceChild(element, oldElement)<\/h2>\n<p>Zamienia istniej\u0105cy element na inny.<\/p>\n<p>Przyk\u0142ad 1 \u2013 zamie\u0144 akapit<\/p>\n<p><code>&lt;div id=\"content\"&gt;<\/code><br \/>\n<code>&lt;p id=\"stary\"&gt;Stary tekst&lt;\/p&gt;<\/code><br \/>\n<code>&lt;\/div&gt;<\/code><br \/>\n<code>&lt;script&gt;<\/code><br \/>\n<code>let nowy = document.createElement(\"p\");<\/code><br \/>\n<code>nowy.textContent = \"Nowy tekst\";<\/code><br \/>\n<code>let content = document.getElementById(\"content\");<\/code><br \/>\n<code>let stary = document.getElementById(\"stary\");<\/code><br \/>\n<code>content.replaceChild(nowy, stary);<\/code><br \/>\n<code>&lt;\/script&gt;<\/code><\/p>\n<p>Przyk\u0142ad 2 \u2013 zamie\u0144 przycisk<\/p>\n<p><code>&lt;div id=\"panel\"&gt;<\/code><br \/>\n<code>&lt;button id=\"btn1\"&gt;Stary przycisk&lt;\/button&gt;<\/code><br \/>\n<code>&lt;\/div&gt;<\/code><br \/>\n<code>&lt;script&gt;<\/code><br \/>\n<code>let nowyBtn = document.createElement(\"button\");<\/code><br \/>\n<code>nowyBtn.textContent = \"Nowy przycisk\";<\/code><br \/>\n<code>let panel = document.getElementById(\"panel\");<\/code><br \/>\n<code>let staryBtn = document.getElementById(\"btn1\");<\/code><br \/>\n<code>panel.replaceChild(nowyBtn, staryBtn);<\/code><br \/>\n<code>&lt;\/script&gt;<\/code><\/p>\n<h2>5. document.write(text)<\/h2>\n<p>Wstawia tekst lub HTML bezpo\u015brednio do dokumentu.<br \/>\nUwaga: u\u017cycie po za\u0142adowaniu strony nadpisze ca\u0142\u0105 zawarto\u015b\u0107.<\/p>\n<p>Przyk\u0142ad 1 \u2013 prosty napis<\/p>\n<p><code>&lt;script&gt;<\/code><br \/>\n<code>document.write(\"Witaj \u015bwiecie!\");<\/code><br \/>\n<code>&lt;\/script&gt;<\/code><\/p>\n<p>Przyk\u0142ad 2 \u2013 rysowanie listy<\/p>\n<p><code>&lt;script&gt;<\/code><br \/>\n<code>document.write(\"&lt;ul&gt;&lt;li&gt;Jeden&lt;\/li&gt;&lt;li&gt;Dwa&lt;\/li&gt;&lt;\/ul&gt;\");<\/code><br \/>\n<code>&lt;\/script&gt;<\/code><\/p>\n<ul>\n<li data-start=\"87\" data-end=\"454\">\n<p data-start=\"89\" data-end=\"454\">Je\u015bli <strong data-start=\"95\" data-end=\"163\"><code data-start=\"97\" data-end=\"115\">document.write()<\/code> zostanie wywo\u0142ane w trakcie parsowania strony<\/strong> (np. wewn\u0105trz <code data-start=\"178\" data-end=\"188\">&lt;script&gt;<\/code> umieszczonego w kodzie HTML zanim DOM jest gotowy) \u2013 wtedy tre\u015b\u0107 jest wstrzykiwana w tym miejscu i niczego nie nadpisuje.<br data-start=\"310\" data-end=\"313\" \/>(tak dzia\u0142aj\u0105 przyk\u0142ady wy\u017cej &#8211;\u00a0 skrypt jest czytany w momencie \u0142adowania i wpis \u201eWitaj \u015bwiecie!\u201d l\u0105duje w tym miejscu w drzewie DOM).<\/p>\n<\/li>\n<li data-start=\"456\" data-end=\"812\">\n<p data-start=\"458\" data-end=\"662\">Je\u015bli <strong data-start=\"464\" data-end=\"533\"><code data-start=\"466\" data-end=\"484\">document.write()<\/code> zostanie wywo\u0142ane ju\u017c po za\u0142adowaniu dokumentu<\/strong> (np. w <code data-start=\"541\" data-end=\"549\">onload<\/code>, w <code data-start=\"553\" data-end=\"565\">setTimeout<\/code>, czy r\u0119cznie w konsoli po tym, jak strona si\u0119 wyrenderowa\u0142a), to wtedy zgodnie z dokumentacj\u0105:<\/p>\n<blockquote data-start=\"665\" data-end=\"812\">\n<p data-start=\"667\" data-end=\"812\">\u201eThe write() method deletes all existing HTML when used on a loaded document.\u201d<br data-start=\"745\" data-end=\"748\" \/>Innymi s\u0142owy \u2013 kasuje ca\u0142y dokument i zaczyna pisa\u0107 od zera.<\/p>\n<p data-start=\"667\" data-end=\"812\">na przyk\u0142ad:<\/p>\n<p><code>&lt;p&gt;To jest tre\u015b\u0107 strony&lt;\/p&gt;<\/code><\/p>\n<p><code>&lt;script&gt;<\/code><br \/>\n<code>\/\/ Zadzia\u0142a w trakcie \u0142adowania - tekst wstrzykni\u0119ty bez kasowania<\/code><br \/>\n<code>document.write(\"Witaj \u015bwiecie!&lt;br&gt;\");<\/code><br \/>\n<code>&lt;\/script&gt;<\/code><\/p>\n<p><code>&lt;script&gt;<\/code><br \/>\n<code>\/\/ Zadzia\u0142a dopiero po za\u0142adowaniu dokumentu - nadpisze ca\u0142o\u015b\u0107<\/code><br \/>\n<code>window.onload = function() {<\/code><br \/>\n<code>document.write(\"Nadpisana strona!\");<\/code><br \/>\n<code>}<\/code><br \/>\n<code>&lt;\/script&gt;<\/code><\/p><\/blockquote>\n<\/li>\n<\/ul>\n<h2>Wybrane w\u0142a\u015bciwo\u015bci obiektu style<\/h2>\n<p>Ka\u017cdy element HTML ma obiekt style, kt\u00f3ry pozwala zmienia\u0107 wygl\u0105d bezpo\u015brednio z poziomu JavaScript.<\/p>\n<h2>1. backgroundColor<\/h2>\n<p>Ustawia kolor t\u0142a elementu.<\/p>\n<p><code>&lt;div id=\"box\" style=\"width:100px; height:100px;\"&gt;&lt;\/div&gt;<\/code><br \/>\n<code>&lt;script&gt;<\/code><br \/>\n<code>document.getElementById(\"box\").style.backgroundColor = \"red\";<\/code><br \/>\n<code>&lt;\/script&gt;<\/code><\/p>\n<h2>2. color<\/h2>\n<p>Kolor tekstu.<\/p>\n<p><code>&lt;p id=\"txt\"&gt;Kolorowy tekst&lt;\/p&gt;<\/code><br \/>\n<code>&lt;script&gt;<\/code><br \/>\n<code>document.getElementById(\"txt\").style.color = \"green\";<\/code><br \/>\n<code>&lt;\/script&gt;<\/code><\/p>\n<p>3. fontSize<\/p>\n<p>Rozmiar czcionki.<\/p>\n<p><code>&lt;p id=\"tekst\"&gt;Ma\u0142y tekst&lt;\/p&gt;<\/code><br \/>\n<code>&lt;script&gt;<\/code><br \/>\n<code>document.getElementById(\"tekst\").style.fontSize = \"30px\";<\/code><br \/>\n<code>&lt;\/script&gt;<\/code><\/p>\n<h2>4. fontStyle<\/h2>\n<p>Styl czcionki (normal, italic, oblique).<\/p>\n<p><code>&lt;p id=\"styl\"&gt;Normalny tekst&lt;\/p&gt;<\/code><br \/>\n<code>&lt;script&gt;<\/code><br \/>\n<code>document.getElementById(\"styl\").style.fontStyle = \"italic\";<\/code><br \/>\n<code>&lt;\/script&gt;<\/code><\/p>\n<h2>5. fontWeight<\/h2>\n<p>Grubo\u015b\u0107 czcionki (normal, bold, lighter, bolder).<\/p>\n<p><code>&lt;p id=\"waga\"&gt;Przyk\u0142ad&lt;\/p&gt;<\/code><br \/>\n<code>&lt;script&gt;<\/code><br \/>\n<code>document.getElementById(\"waga\").style.fontWeight = \"bold\";<\/code><br \/>\n<code>&lt;\/script&gt;<\/code><\/p>\n<h2>6. listStyleType<\/h2>\n<p>Rodzaj wypunktowania (circle, square, decimal, none).<\/p>\n<p><code>&lt;ul id=\"mojaLista\"&gt;<\/code><br \/>\n<code>&lt;li&gt;Element 1&lt;\/li&gt;<\/code><br \/>\n<code>&lt;li&gt;Element 2&lt;\/li&gt;<\/code><br \/>\n<code>&lt;\/ul&gt;<\/code><br \/>\n<code>&lt;script&gt;<\/code><br \/>\n<code>document.getElementById(\"mojaLista\").style.listStyleType = \"square\";<\/code><br \/>\n<code>&lt;\/script&gt;<\/code><\/p>\n<h2><strong>Podsumowanie<\/strong><\/h2>\n<p>Dzi\u0119ki operacjom na DOM i w\u0142a\u015bciwo\u015bciom style mo\u017cemy:<\/p>\n<ol>\n<li>tworzy\u0107, usuwa\u0107 i modyfikowa\u0107 elementy HTML,<\/li>\n<li>dynamicznie sterowa\u0107 wygl\u0105dem strony,<\/li>\n<li>budowa\u0107 interaktywne aplikacje webowe bez prze\u0142adowania strony.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Praca z DOM (Document Object Model) to podstawa w JavaScript. Dzi\u0119ki metodom takim jak createElement, appendChild czy replaceChild mo\u017cemy dynamicznie zmienia\u0107 zawarto\u015b\u0107 strony. Dodatkowo, poprzez obiekt style, sterujemy wygl\u0105dem element\u00f3w HTML bezpo\u015brednio z poziomu skryptu. W tym wpisie znajdziesz proste [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":260,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[44],"tags":[],"class_list":["post-1253","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-html5-css3-javascript"],"_links":{"self":[{"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/posts\/1253","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/comments?post=1253"}],"version-history":[{"count":5,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/posts\/1253\/revisions"}],"predecessor-version":[{"id":1258,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/posts\/1253\/revisions\/1258"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/media\/260"}],"wp:attachment":[{"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/media?parent=1253"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/categories?post=1253"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/tags?post=1253"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}