README-pl
Nie Potrzebujesz jQuery
Środowiska frontendowe rozwijają się błyskawicznie, nowsze przeglądarki zaimplementowały już większą część API DOM/BOM, które są całkiem użyteczne. Nie musimy uczyć się jQuery od podstaw by manipulować modelem dokumentu lub obsługiwać zdarzenia. Tymczasem, dzięki coraz większej dominacji bibliotek frontendowych takich jak React, Angular czy Vue, obsługa DOM bezpośrednio staje się antywzorcem projektowym, a jQuery coraz bardziej traci na znaczeniu. Ten projekt pokazuje w jaki sposób można zastąpić większość metod jQuery korzystając z natywnej implementacji, ze wsparciem dla IE 10+.
Spis treści
Tłumaczenia
Wybór przez Selektory
Zamiast korzystania z powszechnych selektorów takich jak klasa, id czy też atrybut, możemy użyć document.querySelector lub document.querySelectorAll. Różnica między nimi to:
document.querySelectorzwraca pierwszy pasujący elementdocument.querySelectorAllzwraca wszystkie elementy jako NodeList. Może zostać przekształcony do tablicy przy użyciuArray.prototype.slice.call(document.querySelectorAll(selector));Jeżeli żaden element nie został znaleziony, jQuery oraz
document.querySelectorAllzwrócą[], adocument.querySelectorzwrócinull.
Uwaga:
document.querySelectoridocument.querySelectorAllsą dosyć WOLNE, staraj się używaćdocument.getElementById,document.getElementsByClassNamelubdocument.getElementsByTagNamejeżeli chcesz zwiększyć wydajność.
1.0 Wybór przez selektor
1.1 Wybór przez klasę
1.2 Wybór przez id
1.3 Wybór przez atrybut
1.4 Wybór spośród potomków
1.5 Rodzeństwo, Poprzednie/Następne elementy
Rodzeństwo
Poprzednie elementy
Następne elementy
1.6 Najbliższy
Zwraca pierwszy pasujący element przez podany selektor, sprawdzając kolejno elementy od bieżącego.
1.7 Rodzice dopóki
Zwraca potomków każdego elementu w bieżącym zbiorze pasujących elementów, aż do elementu dopasowanego przez selektor, węzeł DOM, lub obiekt jQuery.
1.8 Formularze
Pola tekstowe
Otrzymanie indeksu
e.currentTargetwewnątrz elementów.radio
1.9 Zawartość ramek
$('iframe').contents()zwracacontentDocumenttego iframeZawartość ramki
Wybór elementu ramki
1.10 Otrzymanie body
1.11 Akcesory atrybutów
Otrzymanie wartości atrybutu
Ustawienie wartości atrybutu
Otrzymanie wartości atrybutu
data-
CSS i styl
Dodanie klasy
Usunięcie klasy
Sprawdzenie czy element posiada klasę
Przełączenie klasy
2.2 Szerokość i wysokość
Manipulowanie szerokością i wysokością jest teoretycznie takie samo, dla przykładu użycie wysokości:
Wysokość okna
Wysokość dokumentu
Wysokość elementu
2.3 Pozycja i przesunięcie
Pozycja
Otrzymanie bieżącej pozycji elementu relatywnie do przesunięcia rodzica.
Przesunięcie
Otrzymanie bieżącej pozycji elementu relatywnie do dokumentu.
2.4 Przesunięcie widoku
Otrzymanie bieżącego przesunięcia w pionie elementu.
Manipulacja DOM
3.1 Usuwanie
Usunięcie elementu z DOM.
3.2 Tekst
Otrzymanie tekstu
Otrzymanie połączonej zawartości tekstowej elementu, włącznie z jego potomkami,
Ustawianie tekstu
Ustawianie zawartości tekstowej elementu do wyznaczonej wartości.
3.3 HTML
Otrzymanie HTML
Ustawianie HTML
3.4 Dodawanie na koniec
Dodanie elementu jako dziecko po ostatnim dziecku elementu rodzica
3.5 Dodawanie na początek
3.6 Dodawanie przed
Dodanie nowego węzła przed wybranymi elementami
3.7 Dodawanie po elemencie
Dodanie nowego węzła po wybranych elementach
3.8 Porównywanie
Zwraca
truejeżeli podany selektor pasuje do wybranego elementu3.9 Kopiowanie
Tworzenie głębokiej kopii wybranego elementu
3.10 Wyczyszczenie
Usuwa wszystkie węzły dzieci
3.11 Zawinięcie
Umieszczenie każdego elementu w strukturze HTML
3.12 Odwinięcie
Usuwa rodziców z pasujących elementów z DOM
3.13 Zamiana
Wymiana każdego elementu ze zbioru pasujących elementów na podaną nową zawartość
Ajax
Fetch API jest nowym standardem mającym zastąpić XMLHttpRequest by wykonować ajax. Obecnie działa na Chrome i Firefox, istnieje możliwość użycia tzw. polyfills (wypełnień) by móc używać tej funkcjonalności w starszych przeglądarkach.
Wypróbuj github/fetch na IE9+ lub fetch-ie8 na IE8+, fetch-jsonp by wykonywać żądania JSONP.
4.1 Ładowanie danych z serwera i umieszczenie zwróconego HTML do pasującego elementu
Zdarzenia
Dla pełnego zastąpienia ze wsparciem przestrzenią nazw i delegowaniem, odnieś się do https://github.com/oneuijs/oui-dom-events
5.0 Dokument gotowy ze zdarzeniem
DOMContentLoaded5.1 Nasłuchiwanie funkcji na zdarzenie
5.2 Zatrzymanie nasłuchiwania
5.3 Wywołanie zdarzenia
Funkcje użytkowe
Większość funkcji użytkowych można znaleźć w natywnym API. Pozostałe, bardziej zaawansowane funkcje mogą zostać zastąpione lepszymi bibliotekami użytkowymi, które skupiają się na spójności i wydajności. Rekomendowaną biblioteką jest lodash.
6.1 Podstawowe funkcje użytkowe
isArray
Sprawdza czy podany argument jest tablicą.
isWindow
Sprawdza czy podany argument jest oknem.
inArray
Szuka podanej wartości wewnątrz tablicy i zwraca jej indeks (lub -1 jeżeli nie znaleziono).
isNumeric
Sprawdza czy podany argument jest wartością numeryczną. Użyj
typeofby sprawdzić typ lub przykładutypedla większej dokładności.isFunction
Sprawdza czy podany argument jest obiektem funkcji.
isEmptyObject
Sprawdza czy obiekt jest pusty (nie posiada żadnych wymiernych atrybutów).
isPlainObject
Sprawdza czy obiekt jest prostym obiektem (stworzonym przy pomocy “{}” lub “new Object”).
extend
Scalenie zawartości dwóch lub większej ilości obiektów razem w pierwszy obiekt.
Object.assignnależy do API ES6, więc można również użyć wypełnienia.trim
Usuwa białe znaki z początku i końca ciągu znaków.
map
Przekształcenie wszystkich elementów tablicy lub obiektu w nową tablicę.
each
Ogólna funkcja do iteracji, która może być użyta zarówno na obiektach jak i tablicach.
grep
Zwraca elementy które przechodzą test podanej funkcji filtrującej.
type
Ustala wewnętrzną klasę obiektu.
merge
Scala zawartość dwóch tablic w jedną.
now
Zwraca liczbę reprezentującą bieżący czas.
proxy
Pobiera funkcję jako argument i zwraca nową funkcję, która będzie miała zawsze określony kontekst.
makeArray
Konwertuje obiekt tablico-podobny w tablicę.
6.2 Zawieranie
Sprawdza czy dany element DOM jest potomkiem innego elementu DOM.
6.3 Globalna ewaluacja
Wykonuje kod Javascript z globalnym kontekstem.
6.4 parse
parseHTML
Przetwarza łańcuch znaków w tablicę węzłów DOM.
parseJSON
Pobiera ciąg znaków reprezentujący JSON i zwraca wynikową wartość Javascript.
Obietnice
Obietnice (ang. Promises) reprezentują ewentualny wynik asynchronicznej operacji. jQuery posiada własny system zarządzania obietnicami. Natywny Javascript implementuje minimalną warstwę API do obsługi obietnic według specyfikacji Promises/A+.
7.1 done, fail, always
donejest wywoływane gdy obietnica zostanie zakończona sukcesem,failjest wywoływane gdy obietnica jest odrzucona,alwaysgdy obietnica jest zakończona z dowolnym wynikiem.7.2 when
whenwykorzystuje się do obsługi wielu obietnic jednocześnie. Zakończy się sukcesem, jeżeli wszystkie podane obietnice zostaną również zakończone sukcesem; zakończy się odrzuceniem, jeżeli jakakolwiek z obietnic zostanie odrzucona.7.3 Deferred
Deferred (pl. Odłożenie) jest metodą tworzenia obietnic.
Animacja
8.1 Show i Hide
8.2 Toggle
Wyświetla lub ukrywa element.
8.3 FadeIn i FadeOut
8.4 FadeTo
Dostosowuje przezroczystość elementu w czasie.
8.5 FadeToggle
Wyświetla lub ukrywa element przez animowanie jego przezroczystości.
8.6 SlideUp i SlideDown
8.7 SlideToggle
Wyświetla lub ukrywa element przez przesunięcie.
8.8 Animate
Wykonuje własną animację zbioru atrybutów CSS.
Alternatywy
You Might Not Need jQuery - Przykłady wykonania powszechnych zdarzeń, elementów, ajax itd. z użyciem zwykłego Javascript.
npm-dom oraz webmodules - Indywidualne moduły DOM na NPM.
Wsparcie przeglądarek
![]()
![]()
![]()
![]()
![]()
Latest ✔
Latest ✔
10+ ✔
Latest ✔
6.1+ ✔
Licencja
MIT
Last updated