import { FormsModule } from '@angular/forms';
import { NgForm } from '@angular/forms';
import { Component } from '@angular/core';
required powoduje, że dany element formularza jest wymagany. Nie będzie go można przesłać, jeśli pole nie zostanie uzupełnione.
<input type="text" #nazwaPolaForm="ngModel" />
ng generate service <nazwa_usługi>ng g s <nazwa_usługi>
<nazwa_usługi>.service.spec.ts oraz <nazwa_usługi>.service.ts
import { KalkulatorService } from './kalkulator.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
providers: [KalkulatorService]
})
export class AppComponent {
constructor(kalkulator: KalkulatorService) { }
}
@Input)
export class AppComponent {
zmiennaEksport: string[] = ['17:00', 'pływalnią'];
}
export class SynComponent {
@Input() zmiennaImport!: string[];
}
<app-syn [zmiennaImport]="zmiennaEksport"></app-syn>
<h3>Informacja od rodzica: Przyjdę po ciebie o {{ zmiennaImport[0] }}, czekaj pod {{ zmiennaImport[1] }}</h3>
@Output)
export class SynComponent {
@Output() odpowiedz = new EventEmitter<string>();
wyslanie() {
this.odpowiedz.emit('Będę czekał');
}
<button (click)="wyslanie()" type="button">Wyślij odpowiedź do rodzica</button>
<app-syn (odpowiedz)="onOdpowiedz($event)"></app-syn>
export class AppComponent {
onOdpowiedz(otrzymane: string) {
alert(otrzymane);
}
}
app.module.ts oraz innych plikach .ts w komponentach nadrzędnych, jeżeli ilość zagnieżdżeń jest większa, np.
import { MyComponent } from './my/my.component';
@Component({
imports: [MyComponent],
})
my.component.ts w polu o nazwie selector, np.
selector: 'app-my'
<app-my></app-my>
ng generate component <nazwa_komponentu>ng g c <nazwa_komponentu>
<nazwa_komponentu>.component.html - plik szablonu<nazwa_komponentu>.component.css - arkusz stylów<nazwa_komponentu>.component.ts - plik TypeScript ze zmiennymi i metodami<nazwa_komponentu>.component.spec.ts - plik TypeScript z testamingStyle:
<h1 [ngStyle]="{'font-size.%'}: wybor*20+100">Treść nagłówka</h1>
ngClass:
<h1 [ngClass]="'klasa1 klasa2 klasaN'">Treść nagłówka</h1>
ngModel:
<input type="text" [(ngModel)]="nazwisko">
*ngIf:
<img src="{{person.photo}}" *ngIf="showPhoto else noPhoto">ngFor:
<ul>
<li *ngFor="let value of person.adress"> {{value}} </li>
</ul>
index - numer bieżącego obiektuodd - czy index jest określony liczbą nieparzystąeven - czy index jest określony liczbą parzystąfirst - czy bieżący obiekt jest pierwszymlast - czy bieżący obiekt jest ostatnimngSwitch:
<ng-container [ngSwitch]="person.type">
<img src="assets/images/wenus.png" *ngSwitchCase=1>
<img src="assets/images/mars.png" *ngSwitchCase=2>
<img src="assets/images/unnamed.png" *ngSwitchDefault>
</ng-container>
ngngIf, ngFor, ngSwitchngClass, ngStyle, ngModelngModel umieszczonego pomiędzy nawiasami okrągłymi i kwadratowymi= wpisujemy nazwę właściwości zdefiniowanej w komponencie.[(ngModel)] = "właściwość zdefiniowana w komponencie"<input type="text" [(ngModel)]="nazwisko">
{{}} w szablonie HTML.ts komponentu Angulara<title>{{title}}</title>[] w szablonie HTML<img [src]="photoUrl">() w szablonie HTML<button (click)="onSave()">Zapisz</button>angular.json - dla Agular CLIpackage.json - dla npm z listą pakietów użytych w aplikacjitsconfig.json - dla kompilatora języka TypeScriptnode_modules:
src.index.html:
.js i .css użyte podczas jej budowaniaapp znajdują się pliki:
app.component.html - szablon HTMLapp.component.css - arkusz stylów CSSapp.component.ts - definicje głównego komponentu aplikacjiapp.component.spec.ts - testy automatyczne aplikacjiapp.module.ts - konfiguracja aplikacjiassets znajdują się obrazy, wideo i dźwięki wykorzystywane przez aplikację.interface
interface ClientInterface {
name: string;
age: number;
}
let client: ClientInterface = {
name: "Adam",
age: 19
};
console.log(client);
?) lub tylko do odczytu (parametr readonly), np.
interface ClientInterface {
readonly name: string;
age?: number;
}
type
type ageTest = (age: number) => boolean;
const isLegalAge: ageTest = (age) => age >= 18;
console.log( isLegalAge(19) );
extends.super i w nawiasie okrągłym umieścić właściwości.
class Klient {
imie: string;
nazwisko: string;
wiek: number;
constructor(imie: string, nazwisko: string, wiek: number) {
this.imie = imie;
this.nazwisko = nazwisko;
this.wiek = wiek;
}
powitanie() {
console.log(`Witaj, ${this.imie} ${this.nazwisko}`);
}
czyPelnoletni() {
if (this.wiek >= 18) return true;
else return false;
}
}
class DaneKlienta extends Klient {
adres: string;
constructor(imie: string, nazwisko: string, wiek: number, adres: string) {
super(imie, nazwisko, wiek); this.adres = adres;
}
}
let Nowak = new DaneKlienta("Tadeusz", "Nowak", 44, "Opole, Portowa 17");
let Kowalski = new DaneKlienta("Jan", "Kowalski", 17, "Szczecin, Mickiewicza 19");
for (let wartosc in Nowak) {
console.log(Nowak[wartosc]);
};
Kowalski.powitanie();
class DaneKlienta extends Klient {
adres: string;
constructor(imie: string, nazwisko: string, wiek: number, adres: string) {
super(imie, nazwisko, wiek); this.adres = adres;
}
powitanie() {
console.log(`Dzień dobry, ${this.imie} ${this.nazwisko}`);
}
}
let Kowalski = new DaneKlienta("Jan", "Kowalski", 17, "Szczecin, Mickiewicza 19");
Kowalski.powitanie();
public - domyślny poziom dostępu bez ograniczeńprotected - dostęp do elementów posiada tylko klasa, w której zostały one zdefiniowane oraz klasy dziedziczące po niejprivate - dostęp do elementów posiada tylko klasa, w której zostały one zdefiniowanereadonly. Użycie takiego zapisu spowoduje, że przypisanie do nich wartości poza konstruktorem będzie niemożliwe.class, po którym następuje nazwa
class Klient {
imie: string;
nazwisko: string;
wiek: number;
kontakt: string[];
}
const Nowak = new Klient();
Nowak.imie = "Tadeusz";
Nowak.nazwisko = "Nowak";
Nowak.wiek = 45;
Nowak.kontakt = ["987654321", "tadnow@gmail.com"];
constructor, po którym w nawiasach okrągłych umieszczamy nazwy właściwości wraz z określeniem typu
class Auto {
marka: string;
model: string;
wyswietl() {
console.log(`Marka i model samochodu: ${this.marka} ${this.model}`)
}
constructor(marka: string, model: string) {
this.marka = marka;
this.model = model;
}
}
const Samochod = new Auto("Fiat", "Punto");
Samochod.wyswietl();
class Auto {
wyswietl() {
console.log(`Marka i model samochodu: ${this.marka} ${this.model}`)
}
constructor(public marka: string, public model: string) { }
}
let Samochod = new Auto("Audi", "A4");
Samochod.wyswietl();
const hotel = {
nazwa: "Pod topolą",
standard_pokoi: ["basie", "premium", "vip"],
liczba_pokoi: 30,
rezerwacja: 10,
dostepnosc: function() {
return this.liczba_pokoi - this.rezerwacja
}
}
hotel.nazwa;
hotel.dostepnosc();
console.log(
`Hotel ${hotel['nazwa']},
posiada ${hotel['liczba_pokoi']} pokoi
o standardach: ${hotel['standard_pokoi '][0]}, ${hotel['standard_ pokoi'][l]}, ${hotel['standard_pokoi'][2]}
a liczba wolnych pokoi wynosi ${hotel['dostepnosc']()}
`);
const osoby = [
{ imie: "Adam", wiek: 41 },
{ imie: "Ewa", wiek: 39 },
{ imie: "Maria", wiek: 12 }
];
osoby[1].wiek dla wieku Ewyfor in, np.
console.log("Para klucz-wartość:");
for (let klucz in hotel) {
console.log("Klucz: ", klucz);
console.log("Wartość: ", hotel[klucz]);
}
Object.keys(nazwa_obiektu).
let hotel: { nazwa: string, standard_pokoi: string[], liczba_pokoi: number, rezerwacja: number, dostepnosc: () => number; }
= {
nazwa: "Pod topolą",
standard_pokoi: ["basic", "premium", "vip"],
liczba_pokoi: 30,
rezerwacja: 10,
dostepnosc: function () { return this.liczba_pokoi - this.rezerwacja },
];
const bazaImion: string[] = ["Jan", "Paweł", "Mariusz"];
console.log(
bazaImion.map(
function (imie: string): string {
return `Witaj , ${imie}`;
}
)
);
const bazaImion: string[] = ["Jan", "Paweł", "Mariusz"];
console.log(
bazaImion.map(
imie => `Witaj, ${imie}`
)
);
function powitanie(tresc: string): string {
return `Witaj, ${tresc}`;
}
console.log( powitanie('Adam') );
const suma = function (a: number, b: number): number {
return a + b;
}
const suma = function (a: number, b: number = 10): number {
return a + b;
}
function powitanie(imie: string, id?: number): string {
return `Witaj, ${imie}, ${id}`;
}
console.log( powitanie("Adam") );
console.log( powitanie("Adam", 123) );
function powitanie(...imiona: string[]): string {
return `Witajcie, ${imiona.join(", ")}`;
}
console.log( powitanie("Cezary", "Tadeusz", "Marcin") );
let imiona: string[] = ["Adam", "Bogdan", "Cezary"];let imiona: Array<string> = ["Adam", "Bogdan", "Cezary"];for(let element of imiona) { console.log(element);}
imiona.forEach(element => { console.log(element);});
unshift(element) - wstawia nowy element na początku tablicyshift() - usuwa i zwraca pierwszy element w tablicypush(element) - wstawia nowy element na końcu tablicypop() - usuwa i zwraca ostatni element w tablicyslice(start, stop) - zwraca fragment tablicy; start to indeks początku, stop zaś to indeks końca nie uwzględniony w wynikachsplice(indeks, liczba) - usuwa podaną liczbę elementów od wskazanego indeksuconcat(tablica) - zwraca nową tablicę, która powstaje w wyniku połączenia tablicy z tą podaną w argumencie; można łączyć ze sobą kilka tablicjoin(separator) - zwraca ciąg tekstowy wszystkich wartości przechowywanych w tablicy; poszczególne elementy są od siebie oddzielone separatorem sort() - zwraca tablicę, której elementy są posortowane w kolejności rosnącejreverse() - zwraca tablicę, której elementy są posortowane w kolejności malejącej
Array.isArray(zmienna).zmienna.length.let tablica3 = [...tablica1, ...tablica2, ...tablicaN].
let krotka: [string, number] = ["Jan Kowalski", 40];
console.log(`Nazywam się ${krotka[0]} i mam ${krotka[1]} lat.`);
enum kolory {
czerwony, zielony, niebieski, żółty
}
let niebieskiWartosc = kolory.niebieski;
let niebieski = kolory[2];
console.log(`Mój ulubiony kolor to: ${niebieski}, a jego wartość to ${niebieskiWartosc}.`);
let tekst: string = "Witaj świecie!";let liczba: number = 123.45;let prawda: boolean = true;let cokolwiek: any;" " lub apostrofami ' '` ` (backtick)`Tekst ${zmienna}`let decimal: number = 6; // 6
let binary: number = 0b11101; // 29
let octal: number = 0o361; // 241
let hex: number = 0xfff; // 4095
let wspolna: string | number;.let ocena: 1 | 2 | 3 | 4 | 5 | 6;.node -v)npm init -y (powstaje plik konfiguracyjny projektu package.json)npm install typescript (powstaje plik package-lock.json zawierający informację o użytej wersji języka)npx tsc -init (powstaje plik tsconfig.json)npx tsc nazwa_pliku.ts (powstaje plik JS o tej samej nazwie).node nazwa_pliku.js.npx tsc --watch.npx nodemon nazwa_pliku.js.node -v)npm install -g @angular/cling new nazwa_projektu.ng serve -o (serwer aplikacji w trybie deweloperskim).
AJAX - Asynchroniczny JavaScript i XML (ang. Asynchronous JavaScript and XML) – technika tworzenia aplikacji internetowych, w których interakcja użytkownika z serwerem odbywa się bez przeładowywania całego dokumentu, w sposób asynchroniczny.JSON - (ang. JavaScript Object Notation):
API - (ang. application programming interface) - zbiór reguł ściśle opisujący, w jaki sposób programy lub podprogramy komunikują się ze sobą.
.ajax() - wykonuje asynchroniczne żądanie HTTP (AJAX).get() - ładuje dane z serwera za pomocą żądania HTTP GET.post() - wysyła dane do serwera za pomocą żądania HTTP POST.ajax(url [, settings ]):
.get(url [, data ] [, success ] [, dataType ]).post(url [, data ] [, success ] [, dataType ]):
:button - elementy <button> i <input> z atrybutem type, który ma wartość button:checkbox - element <input>, którego atrybut type ma wartość checkbox:disabled/:enabled - elementy, które zostały wyłączone/włączone:input - elementy <button>, <input>, <select> oraz <textarea>:password - element <input>, którego atrybut type ma wartość password:radio - element <input>, którego atrybut type ma wartość radio:submit - element <input> bądź <button>, którego atrybut type ma wartość submit:text - element <input>, którego atrybut type ma wartość text.val() - pobiera bieżącą wartość pierwszego elementu w zestawie dopasowanych elementów lub ustawia wartość każdego dopasowanego elementu.is() - sprawdza bieżący dopasowany zestaw elementów względem selektora, elementu lub obiektu jQuery i zwraca wartość true, jeśli przynajmniej jeden z tych elementów pasuje do podanych argumentów.animate()..animate(properties [, duration ] [, easing ] [, complete ]):
.animate() używamy notacji camelCase - pierwsze słowo rozpoczynamy od małej litery, a każde następne od dużej, np. borderRadius.+= doda odpowiednią wielkość do aktualnej, a -= odejmie.
1. Terminowość wysyłania prac.
2. Bałagan w plikach
- brak podziału na katalogi css, js, img
- dołącznie niepotrzebnych plików
- brak plików JS dołączonych w HTMLu
3. Nazwa pliku - index.html a nie dowolna.
4. Wersja Bootstrap niezgodna z instrukcją - należało użyć 5.3, jak na lekcjach.
5. Bałagan w kodzie:
- miejsca dołączania i wywoływania skryptów - ma to znaczenie
- używanie bibliotek tam, gdzie nie jest to potrzebne - jQuery, żeby otworzyć informację o cookies
- pozostawianie komentarzy w kodzie
- pozostawianie pustych linii
- wprowadzić formatowanie kodu z wykorzystaniem wtyczki Prettier
6. Brak wykorzystania siatki Bootstrap:
- brak wierszy i kolumn
- kolumny bez breakpointów
7. Menu:
- nieaktywne linki lub ich brak
- linki zewnętrzne bez target="_blank"
8. Slider:
- class="img-fluid", aby obrazki skalowały się na szerokość ekranu
- takie same wymiary i proporcje wszystkich obrazków
9. Ciasteczka:
- niedziałające skrypty otwierające dla Modala/Offcanvas
10. Estetyka projektów - mniej zwykle daje lepsze efekty
11. Treść - brak lub szczątkowa treść w części projektów.
12. Filmy - autoplay razem z muted.
13. Przykłady skryptów:
- otwieranie modala/offcanvasa
- otwieranie modala/offcanvasa z obsługą cookies
- otwieranie modala/offcanvasa z obsługą localstorage
- otwieranie modala/offcanvasa z obsługą sessionstorage
- sticky menu - przewijanie treści do miejsca
.hide() - ukrywa dopasowane elementy.show() - wyświetla dopasowane elementy.toggle() - wyświetla lub ukrywa dopasowane elementy.fadeIn() - zmienia widoczność dopasowanych elementów od przeźroczystości do pełnej widoczności.fadeOut() - zmienia widoczność dopasowanych elementów od pełnej widoczności do przeźroczystości.fadeTo() - ustawia przezroczystość dopasowanych elementów.fadeToggle() - wyświetla lub ukrywa dopasowane elementy, animując ich przeźroczystość.slideDown() - wyświetla dopasowane elementy ruchem przesuwnym.slideToggle() - wyświetla lub ukrywa dopasowane elementy, animując ich ruch przesuwny.slideUp() - ukrywa dopasowane elementy ruchem przesuwnymevent w jQuery dostarcza informacji o zainstniałym zdarzeniu. Użyta w wywołaniu funkcja pozwala odwołać się do obiektu zdarzenia.
.currentTarget - bieżący element DOM w fazie propagacji zdarzenia.data - opcjonalny obiekt danych przekazywany do metody zdarzenia, gdy jest powiązany bieżący skrypt obsługi zdarzenia.delegateTarget - element, do którego dołączono aktualnie wywoływaną procedurę obsługi zdarzeń jQuery.metaKey - wskazuje, czy podczas uruchomienia zdarzenia naciśnięto klawisz Meta; klawisz Meta to Windows na klawiaturze Windows oraz Command na klawiaturach Macintosh.namespace - przestrzeń nazw określona, gdy zdarzenie zostało wyzwolone.pageX - pozycja myszy względem lewej krawędzi dokumentu.pageY - pozycja myszy względem górnej krawędzi dokumentu.relatedTarget - drugi element DOM biorący udział w zdarzeniu, jeśli istnieje.result - ostatnia wartość zwrócona przez procedurę obsługi zdarzenia, która została wywołana przez to zdarzenie, chyba że wartość była niezdefiniowana..target - element DOM, który zainicjował zdarzenie.timeStamp - różnica w milisekundach między czasem utworzenia zdarzenia przez przeglądarkę a 1 stycznia 1970 r..type - opisuje typ zdarzenia, np. keyup.which - wskazuje klawisz lub przycisk, który został naciśnięty dla zdarzeń klawiatury lub myszy.isDefaultPrevented() - zwraca informację, czy funkcja event.preventDefault() została kiedykolwiek wywołana na tym obiekcie zdarzenia.isImmediatePropagationStopped() - zwraca informację, czy funkcja event.stopImmediatePropagation() została kiedykolwiek wywołana dla tego obiektu zdarzenia.isPropagationStopped() - zwraca informację, czy funkcja event.stopPropagation() została kiedykolwiek wywołana dla tego obiektu zdarzenia.preventDefault() - jeżeli ta metoda zostanie wywołana, domyślna akcja zdarzenia nie zostanie wywołana.stopImmediatePropagation() - uniemożliwia wykonanie pozostałych procedur obsługi i zapobiega rozprzestrzenianiu się zdarzenia w drzewie DOM.stopPropagation() - zapobiega rozprzestrzenianiu się zdarzenia w drzewie DOM, uniemożliwiając powiadomienie jakichkolwiek nadrzędnych procedur obsługi o zdarzeniu.keydown() - wiąże obsługę zdarzenia keydown lub wywołuje to zdarzenie na elemencie; zdarzenie występuje, gdy naciśniemy klawisz na klawiaturze, obsługuje również klawisze niedrukowalne, jak Shift, Esc, Delete.keypress() - wiąże obsługę zdarzenia keypress lub wywołuje to zdarzenie na elemencie; zdarzenie występuje, gdy naciśniemy klawisz na klawiaturze, nie obsługuje klawiszy niedrukowalnych, jak Shift, Esc, Delete.keyup() - wiąże obsługę zdarzenia keyup lub wywołuje to zdarzenie na elemencie; zdarzenie występuje, gdy zwolnimy klawisz na klawiaturze.click() - wiąże obsługę zdarzenia click lub wywołuje to zdarzenie na elemencie; zdarzenie występuje, gdy kliknięmy przycisk myszki.mouseover() - wiąże obsługę zdarzenia mouseover lub wywołuje to zdarzenie na elemencie; zdarzenie występuje, gdy umieścimy wskaźnik myszy w obrębie wybranego elementu.mouseout() - wiąże obsługę zdarzenia mouseout lub wywołuje to zdarzenie na elemencie; zdarzenie występuje, gdy usuniemy wskaźnik myszy z wybranego elementu.focus() - wiąże obsługę zdarzenia focus lub wywołuje to zdarzenie na elemencie; zdarzenie występuje, gdy wybierzemy element za pomocą myszki lub klawisza TAB.change() - wiąże obsługę zdarzenia change lub wywołuje to zdarzenie na elemencie; zdarzenie występuje, gdy edytujemy element.blur() - wiąże obsługę zdarzenia blur lub wywołuje to zdarzenie na elemencie; zdarzenie występuje, gdy opuszczamy aktywny element.scroll() - wiąże obsługę zdarzenia scroll lub wywołuje to zdarzenie na elemencie; zdarzenie występuje, gdy użytkownik przewija zawartość okna przeglądarki.resize() - wiąże obsługę zdarzenia resize lub wywołuje to zdarzenie na elemencie; zdarzenie występuje, gdy użytkownik zmienia rozmiar okna przeglądarki.on(), do której przekazujemy procedurę obsługi zdarzeń.
$('p').click( function() {
$(this).remove();
});
$('p').on('click', function() {
$(this).remove();
});
.attr() - pobiera wartość atrybutu dla pierwszego elementu w zestawie dopasowanych elementów lub ustawia jeden lub więcej atrybutów dla każdego dopasowanego elementu.removeAttr() - usuwa atrybut z każdego elementu w zestawie dopasowanych elementów.prop() - pobiera wartość właściwości pierwszego elementu w zestawie dopasowanych elementów lub ustaw jedną lub więcej właściwości dla każdego dopasowanego elementu.removeProp() - usuwa właściwość z zestawu dopasowanych elementów.css() - pobiera wartość właściwości stylu dla pierwszego elementu w zestawie dopasowanych elementów lub ustawia jedną lub więcej właściwości CSS dla każdego dopasowanego elementu.addClass() - dodaje określone klasy do każdego elementu w zestawie dopasowanych elementów.hasClass() - sprawdza, czy któryś z dopasowanych elementów ma przypisaną daną klasę.removeClass() - usuwa jedną lub wiele klas lub wszystkie klasy z każdego elementu w zestawie dopasowanych elementów.toggleClass() - dodaje lub usuwa jedną lub wiele klas z każdego elementu w zestawie dopasowanych elementów, w zależności od obecności klasy lub wartości argumentu stanu.replaceWith() - zastąpuje każdy element w zestawie dopasowanych elementów dostarczoną nową treścią i zwraca zestaw elementów, który został usunięty.replaceAll() - zastąpuje każdy element docelowy zestawem dopasowanych elementów.remove() - usuwa zestaw dopasowanych elementów z modelu DOM.empty() - wsuwa wewnętrzny kod HTML wszystkich dopasowanych elementów z modelu DOM.each() - pobiera wiele elementów i na każdym z nich po kolei wykonuje wybrane operacje.append() - wstawia treść na końcu każdego elementu w zestawie dopasowanych elementów.appendTo() - wstawia każdy element w zestawie dopasowanych elementów na koniec elementu docelowego.prepend() - wstawia treść na początek każdego elementu w zestawie dopasowanych elementów.prependTo() - wstawia każdy element w zestawie dopasowanych elementów na początek elementu docelowego.after() - wstawia treść po każdym elemencie w zestawie pasujących elementów.before() - wstawia treść przed każdym elementem w zestawie dopasowanych elementów.insertAfter() - wstawia każdy element w zestawie dopasowanych elementów po elemencie docelowym.insertBefore() - wstawia każdy element w zestawie dopasowanych elementów przed elementem docelowym
.html():
const $lista_ul = $('ul').html();
const $lista_li = $('li').html();
.text():
let $lista_ul = $('ul').text();
let $lista_li = $('li').text();
.html() oraz /code>.text():
$(function () {
let $lista_ul = $('ul').html();
$('ol').append($lista_ul);
$lista_ul = $('ul').text();
$('p').append($lista_ul);
});
jQuery(), jak również formy skróconej, $().$('li') - elementy listy$('#menu') - element o id "menu"$('.active') - elementy posiadające klasę "active"$('[href="#"]') - elementy posiadajace atrybut href="#".first() - pierwszy element z wybranych.last() - ostatni element z wybranych.odd() - nieparzyste elementy zbioru.even() - parzyste elementy zbioru.eq(nr) - elementy o podanym numerze indeksu.lt(nr) - elementy o numerze indeksu mniejszym niż podany.gt(nr) - elementy o numerze indeksu większym niż podany.not(selektor) - wszystkie elementy z wyjątkiem wskazanego.find(selektor) - wyszukuje wewnątrz danego elementu inny element określony przez selektor.filter(fn*) - filtruje listę elementów przez zadane kryterium