Tworzenie elementów od zera (Wersja Wideo)
-
0:01 - 0:07Na razie modyfikowaliśmy elementy
istniejące już na stronie. -
0:07 - 0:10A gdybyśmy chcieli dodać tam nowe?
-
0:10 - 0:13Moglibyśmy - za pomocą "innerHTML",
-
0:13 - 0:17pisząc HTML do tagów w ciągu,
który wprowadzamy. -
0:18 - 0:21Tak jak tutaj.
Tylko że może się zrobić bałagan, -
0:21 - 0:26zwłaszcza gdy chcecie tworzyć tagi
o różnych atrybutach, stylach i klasach. -
0:26 - 0:31Zamiast tego użyjmy
całego wachlarza metod -
0:32 - 0:36tworzenia elementów od zera
i umieszczania ich na stronie. -
0:36 - 0:41Powiedzmy,
że chcemy dodać zdjęcie kota, -
0:41 - 0:44bo na stronie
jest ich jeszcze za mało. -
0:44 - 0:49Pierwszy krok - to stworzyć
nowy element "img", tak? -
0:49 - 0:51To chcemy utworzyć.
-
0:51 - 0:56Zaczniemy od zmiennej,
która będzie go przechowywać: "catEl". -
0:56 - 1:01A potem damy:
"document.createElement" -
1:01 - 1:05i wpiszemy nazwę znacznika,
który robimy, czyli "img". -
1:07 - 1:08Można sobie wyobrazić,
-
1:09 - 1:12że przeglądarka
zrobiła znacznik zdjęcia, o, taki, -
1:12 - 1:15i unosi się on gdzieś w przestrzeni.
-
1:15 - 1:19Następny krok
- to przypisać mu źródło. -
1:19 - 1:23Zatem: "catEl.src =".
-
1:24 - 1:26Weźmy źródło stąd...
-
1:30 - 1:33...i powinniśmy dodać jeszcze "alt",
-
1:33 - 1:35by obraz był łatwiej dostępny.
-
1:35 - 1:37Nie robię tego,
-
1:37 - 1:41ale powinnam zawsze mieć
"alt" przy zdjęciach. -
1:42 - 1:45Jak widać, ten tag "zdjęcie",
-
1:45 - 1:49który zrobiliśmy, ma...
-
1:50 - 1:51źródło ("src")...
-
1:51 - 1:53i ma też...
-
1:54 - 1:59"alt" - "Photo of cute cat"
(zdjęcie ślicznego kota). No dobrze. -
1:59 - 2:03To zrobiliśmy z użyciem JavaScript.
-
2:05 - 2:09Nasz tag "img"
nadal unosi się w przestrzeni: -
2:09 - 2:12przeglądarka nie wie,
gdzie go umieścić. -
2:12 - 2:16Nasz DOM ma wiele różnych miejsc,
w których mógłby się znaleźć. -
2:16 - 2:21Zróbmy coś prostego:
niech słowo pojawi się u dołu strony. -
2:22 - 2:26Osiągniemy to,
pisząc na końcu tagu "body": -
2:26 - 2:30"document.body.appendChild(catEl)".
-
2:30 - 2:33I jest! Całkiem spory!
-
2:33 - 2:35Duży, straszny kot!
-
2:35 - 2:41Można przywołać "appendChild" w każdym
istniejącym węźle DOM-u na stronie. -
2:41 - 2:44Sprawi, że wprowadzony element
-
2:44 - 2:48zostanie ostatnim dzieckiem
w tym węźle. -
2:48 - 2:52Tutaj pomoże nam wizualizacja:
DOM jako drzewo. -
2:52 - 2:56Tag "body" to węzeł na tym drzewie,
-
2:56 - 3:00i ma całą grupę dzieci, np. "h1" i "p".
-
3:00 - 3:04Dodajecie
jeszcze jedno dziecko na końcu. -
3:04 - 3:08Znajdzie się za tagiem "script", tutaj.
-
3:10 - 3:11Używając metod DOM-u,
-
3:11 - 3:16teoretycznie powinniście dokładać
elementy w dowolnym punkcie drzewa. -
3:16 - 3:20My umieściliśmy element
w najbardziej oczywistym miejscu. -
3:20 - 3:22Jeszcze jeden przykład.
-
3:22 - 3:26Użyliśmy tutaj "innerHTML",
-
3:26 - 3:29by umieścić tagi "strong"
wewnątrz "span". -
3:29 - 3:32Można też użyć
polecenia "stwórz element". -
3:32 - 3:35"var strongEl = document"...
-
3:35 - 3:40".createElement strong".
-
3:40 - 3:44Źle zapisałam,
a pisownia jest bardzo ważna. -
3:44 - 3:47Powstaje więc pusty tag "strong",
-
3:47 - 3:49unoszący się w przestrzeni.
-
3:49 - 3:52Najpierw ustalimy tekst.
-
3:52 - 3:57Piszemy zatem:
strongEl.textContent = "cat". -
3:57 - 3:58W porządku?
-
3:58 - 4:02Moglibyśmy również zrobić coś innego:
-
4:02 - 4:05stworzyć tzw. węzeł tekstowy
(textNode). -
4:05 - 4:07Wiele węzłów w drzewie DOM-u
-
4:07 - 4:11może zawierać jako dzieci
specjalny typ węzłów, "textNode". -
4:11 - 4:13To nie są elementy,
-
4:13 - 4:15lecz nadal węzły w drzewie DOM-u.
-
4:15 - 4:20Tzw. "węzły-liście" to ostatnie rzeczy,
które mogą się znajdować w drzewie. -
4:20 - 4:23"Var strongText"...
-
4:23 - 4:26"= document.createTextNode".
-
4:28 - 4:31Wpiszemy tekst: "cat".
-
4:32 - 4:34Używając tej metody,
-
4:34 - 4:40stworzyliśmy dwa węzły w przestrzeni.
-
4:40 - 4:42Tag "strong"...
-
4:42 - 4:46oraz ten "textNode",
czyli po prostu "cat". -
4:47 - 4:50Musimy je połączyć.
-
4:50 - 4:55Chcemy, żeby "strong"
był rodzicem "cata". -
4:55 - 5:01Musimy więc napisać:
"strongEl.appendChild(strongText)". -
5:03 - 5:06Teraz, kiedy już mamy...
-
5:07 - 5:10"strong" z kotem wewnątrz,
-
5:13 - 5:17musimy go gdzieś umieścić,
bo nadal unosi się w przestrzeni. -
5:18 - 5:23Jesteśmy wewnątrz pętli FOR
dla "nameEls". -
5:23 - 5:27Do każdego "nameEl"
chcemy dodać tag "strong". -
5:27 - 5:30Mamy więc tutaj: "nameEls[i]"...
-
5:30 - 5:34".appendChild(strongEl)".
-
5:35 - 5:39Aha, teraz widzimy to dwa razy,
-
5:39 - 5:42bo zostawiłam stary sposób.
-
5:43 - 5:47Przytwierdził się do tagu "span",
który ma już w sobie "strong". -
5:47 - 5:49Moglibyśmy zmienić ten wiersz
-
5:49 - 5:52na "innerHTML = empty string"
(pusty ciąg). -
5:53 - 5:56Wtedy wyczyściłby się "span",
zanim do niego dojdziemy. -
5:58 - 6:03Widzieliście: wymagało to więcej
wierszy kodu niż wersja "innerHTML". -
6:05 - 6:07Dlaczego to zrobiliśmy?
-
6:07 - 6:11Projektanci stron nie lubią
modyfikować dokumentów w ten sposób, -
6:11 - 6:13bo wymaga to więcej programu.
-
6:13 - 6:17Większość projektantów
używa bibliotek, np. jQuery, -
6:17 - 6:19by za nich robiły modyfikacje DOM-u.
-
6:20 - 6:23Biblioteki mają funkcje,
które robią ten sam program, -
6:23 - 6:27a wy musicie wpisać
znacznie mniej wierszy. -
6:27 - 6:30Wyręczają was funkcje biblioteki.
-
6:30 - 6:32Lubię w ten sposób pisać program,
-
6:32 - 6:35ponieważ doskonale widzę,
-
6:35 - 6:38jak modyfikuję drzewo DOM-u,
wiersz po wierszu. -
6:39 - 6:43To wygląda porządniej niż wpisywanie
wszystkiego w ciąg "inner HTML". -
6:43 - 6:47Wam może się nie podoba.
Ale już wiecie, że jest taka metoda. -
6:47 - 6:50Używajcie jej w razie potrzeby,
-
6:50 - 6:54a zorientujecie się, co biblioteki
takie jak jQuery robią za kulisami.
- Title:
- Tworzenie elementów od zera (Wersja Wideo)
- Description:
-
To tylko zapis naszych interaktywnych sesji poświęconych kodowaniu, stworzony by ułatwić ich przełożenie na inne języki.
Polecamy obejrzenie oryginalnej sesji na Khan Academy, gdzie możecie zatrzymać sesje, by edytować własny kod, jak również zobaczyć zapis kodu w wyższej rozdzielczości:
http://www.khanacademy.org/computer-programming - Video Language:
- English
- Duration:
- 06:56
Lech Mankiewicz edited Polish subtitles for Creating elements from scratch (Video Version) | ||
Dominik Kamiński edited Polish subtitles for Creating elements from scratch (Video Version) | ||
Dominik Kamiński edited Polish subtitles for Creating elements from scratch (Video Version) | ||
Dominik Kamiński edited Polish subtitles for Creating elements from scratch (Video Version) | ||
Dominik Kamiński edited Polish subtitles for Creating elements from scratch (Video Version) | ||
Dominik Kamiński edited Polish subtitles for Creating elements from scratch (Video Version) | ||
Dominik Kamiński edited Polish subtitles for Creating elements from scratch (Video Version) |