JS Install

< script src= "JS/myScript01.js">
< script src= "JS/myScript02.js">

DOM manupuláció

JS Dokumentumtulajdonságai
DOM metódusai

A dokumentumtulajdonságokra a dokument um. tulajdonság formá-tumban hivatkozhatsz megfelelóen, a következóképpen: var urlem = document. URLi

Tulajdonság Leírás
activeElement (aktív elem) Azt az elemet adja vissza, amely jelenleg fókuszban van a weblap ablakában
anchors (horgonyok) A weblap összes anchor (horgony) elemének listáját adja vissza
body (törzs) Beállítja vagy lekéri a weblap törzselemét
cookie A weblap összes cookie-jának nevét és értékét adja
characterSet (karakterkészlet) A weblaphoz megadott karakterkészletet adja vissza
documentElement (dokumentum elem) A weblap html elemének DOM-objektumát adja vissza
documentMode (dokumentum módja) Azt a módot adja vissza, amelyben a böngészó megjele-níti a weblapot
domain A dokumentum elküldéséhez használt server domain nevét adja vissza
embeds (beágyazasok) A weblap összes embed (beágyazás) elemének listáját adja vissza
forms (űrlapok) A weblap összes form (űrlap) elemének listáját adja vissza
head (fej) A weblap fejelemét adja vissza
images (képek) A weblap összes img (kép) elemének listáját adja vissza
lastModified (legutóbbi módosítás) A weblap legutóbbi módosításának idópontját és dátu-mát adja vissza
links (hivatkozások) A weblap összes anchor és area (terület) elemének lis-táját adja vissza
title (cím) Beállítja vagy lekéri a weblap címét
URL A weblap teljes URL-jét adja vissza


A JavaScript dokumentummetódusai
Metódus Leírás
createElement () (elem létrehozása) Hozzáad egy új elemobjektumot
createTextNode ( ) (szövegcsomópont létrehozása) Hozzáad egy úi szövegobjek-tumot
getElementbyId (id) (elem lekérése azonositó alapján) A megadott azonosítóértékú elemobjektumot adja vissza
getElementsByClassName (osztály) (elemek lekérése osztálynév alapján) A megadott osztálynevú elemek listájat adja vissza
getElementsByTagName (cimke) (elemek lekérése címkenév alapján) A megadott elemtípusú elemek listajat adja vissza
hasFocus () (fokuszban van) A true (igaz) értéket adja vissza, ha a weblap az ablak fókusza-ban van
write (szöveg) (kiírás) A megadott szöveget elküldi a weblapra
writeln (szöveg) (kiírás új sorral) Elküldi a weblapra a megadott szöveget, majd azt követóen egy új sor karaktert


JS Objektumtulajudonságai
Tulajdonság Leírás
attributes (attribútumok) Az objektum attribútumainak listáját adja vissza
childElementCount (gyermekelemek száma) Az objektum gyermekelemeinek sámát adja vissza
childNodes (gyermekcsomópontok) Az objektum gyermekcsomópontjainak listáját adja vissza, beleértve a szöveget és a megjegyzéseket is
children (gyermekek) Csak az objektum gyermekelemeihez tartozó objek-tumcsomópontok listáját adja vissza
classList (osztálylista) Egy objektum osztálynév-attribútumainak listáját adja vissza
className (osztálynév) Egy objektum ostályattribútumának értékét állítja be vagy adja vissza
firstChild (elsó gyermek) Az objektum elsó gyermekobjektumát adja vissza
id (azonosító) Az objektum azonosítójának értékét állítja be vagy adja vissza
innerHTML (belsó HTML) Az objektum HTML-tartalmát állítja be vagy adja vissza
lastChild (utolsó gyermek) Az objektum utolsó gyermekobjektumát adja vissza
nodeName (csomópont neve) Az objektum nevét adja vissza
nodeType (csomópont típusa) Az objektum elemtípusát adja vissza
nodeValue (csomópont értéke) Az objektumhoz tartozó értéket állítja be vagy adja vissza
nextSibling (következó testvér) A fa következó olyan objektumát adja vissza, amely
parentNode (szüló csomópont) az objektummal megegyezó szinten helyezkedik el Az objektum szülóobjektumát adja vissza
previousSibling (elózó testvér) A fa elózó olyan objektumát adja vissza, amely az
style (stílus) objektummal megegyezó szinten helyezkedik el Egy objektum style (stílus) tulajdonságának értékét állítja be vagy adja vissza


JS DOM Objektummetódusai
Metódus Leírás
appendChild (objektum)(gyermek hozzáadása) Ey új gyermekobjektumot ad hozzá egy meglévő objektumhoz
blur () (elhomályosítás) Eltávolít egy objektumot a fókuszból
click () Az objektumra való egérkattin-tást szimulál
cloneNode (klóncsomópont) Duplikál egy objektumot a DOM-ban
contains (objektum) (tartalmazás) A true értéket adja vissza, ha az objektum tartalmazza a megadott objektumot
focus () (fókusz) Az ablak fókuszába helyezi az objektumot
getAttribute (attribútum) (attribútum lekérése) A megadott objektumattribútum értékét adja vissza
getElementsByClassName (osztály) (elemek lekérése osztálynév alapján) A megadott ostálynevú osztályok listáját adja vissza
getElementsByTagName (címke) (elemek lekérése címkenév alapján) A megadott címkenevú osztályok listáját adja vissza
hasAttribute (attributum) (attribútummal rendelkezik) A true értéket adja vissza, ha az objektum tartalmazza a megadott attribútumot
hasAttributes () (attribútumokkal rendelkezik) A true értéket adja vissza, ha az objektum bármilyen attribútumot tartalmaz
hasChildNodes () (gyermekcsomópontjai vannak) A true értéket adja vissza, ha az objektum bármilyen gyermekobjektumot tartalmaz
insertBefore (objektum) (beszúrás elé) A megadott objektumot beszúrja az objektum elé
removeAttribute (attribútum) (attribútum eltávolítása) Eltávolítja a megadott attribútumot az objektumból
removeChild (objektum) (gyermek eltávolítása) Eltávolítja a megadott gyermek-objektumot a szülöobjektumból
replaceChild (objektum) A gyermekobjektumot a megadott objektumra cseréli
setAttribute (attribútum) Az objektum megadott attribútumát a megadott értékre állítja be
toString () (stringgé alakítás) Az objektumot szrtinggé konvertálja


textbox DOM tulajonságai
Tulajdonság Leírás
autocomplete (automatikus kiegészítés) Beállítja vagy lekéri az autocomplete attribútum értékét
autofocus (automatikus fókusz) Azt állítja be vagy kéri le, hogy a szövegmezó az ablak fókuszába kerül-e a weblap betöltésekor
defaultValue (alapértelmezett érték) Beállítja vagy lekéri a szövegmezóhöz társított alapértelmezett értéket
disabled (letiltva) Azt állítja be vagy kéri le, hogy a szovegmezó le van-e tiltva az úrlapon
form (úrlap) Azt a szülóúrlapot kéri le, amelybe a szövegmezó tartozik
list (lista) A szövegmezóhöz társított adatlistát kéri le
maxLength (maximális hossz) Beállítja vagy lekéri a szövegmezó maximális hosszát
name (név) Beállítja vagy lekéri a szövegmezó name attri-bútumát
pattern (minta) Beállítja vagy lekéri a szövegmezó pattern att-ribútumát
placeholder (helyórzó) Beállítja vagy lekéri a szövegmezó placeholder attribútumát
readonly (írásvédett) Azt allitja be vagy kéri le, hogy a szövegmezó irásvédett-e
required (kotelezo) Azt állitja be vagy kéri le, hogy a szövegmezó az úrlap kötelezöen kitöltendó mezöje-e
size (méret) Beállitja vagy lekéri a szövegmezó size attribú-tumának értékét
type (típus) Azt kéri le, hogy a szövegmezó milyen típusú elem
value (érték) Beállítja vagy lekéri a szövegmezó value attribútumát


checkbox DOM tulajdonságai
Tulajdonság Leírás
autofocus Azt állítja be vagy kéri le, hogy a jelölónégyzet a fókuszba kerül-e a weblap betöltésekor
checked (bejelölve) Beállítja vagy lekéri a jelölónégyzet állapotát
defaultChecked (alapértelmezés szerint bejelölve) A jelölónégyzet alapértelmezett állapotát kéri le
defaultValue (alapértelmezett érték) A jelölónégyzethez társitott alapertelmezett értéket kéri le
disabled (letiltva) Azt allitja be vagy kéri le, hogy a jelölónégyzet le van-e tiltva
form (úrlap) Azt a szülóúrlapot kéri le, amelybe a jelölónégyzet tartozik
intermediate (köztes) Beallitja vagy lekéri a jelölónégyzet köztes állapotát
name (név) Beallitja vagy lekéri a jelölónégyzet-elemhez tár-sitott nevet
required (kötelezó) Azt allitja be vagy kéri le, hogy a jelölónégyzetet kötelezó-e bepipálni az úrlap elküldéséhez
type (típus) Azt kéri le, hogy a jelölónégyzet milyen típusú elem
value (érték) Beállitja vagy lekéri a jelölónégyzethez társított értéket

CIKLUSOK



Mi a ciklus? Mikor használjuk? Mi a végtelen ciklus? Ciklust (más néven iterációt) akkor használunk, amikor egy utasítást vagy utasítássorozatot egymás után többször szeretnénk végrehajtani.
Fontos részei:

ciklusfeltétel, ciklusmag, értéknövelés/értékcsökkentés.



Fontos az ismétlési feltétel helyes megfogalmazása hogy ne legyen végtelen ciklus! Végtelen ciklust állítunk elő, ha a ciklusfeltétel (ismétlési feltétel) mindig igaz, pld.:
1. Program
2. szam:=4
3. Ciklus amíg szam !=6 addig
4. Ki: ”végtelen ciklus”
5. szam:= szam – 1
6. Ciklus vége
7. Program vége


Magyarázat:
1. sorban a szam változó felveszi a 4-es értéket,
2. sorban megfogalmazzuk a ciklusfeltételt (szam nem egyenlő 6), 3-as és 4-es sorban található a ciklusmag.
A 3-as sorban kiírjuk, hogy végtelen ciklus, 4-es sorban csökkentjük a szam változó értékét 1-el így sosem éri el a 6 –os számot, ami a ciklusfeltételben szerepel végtelen ciklust hoztunk létre.

II. Milyen fajtái vannak a ciklusoknak és mikor melyiket használjuk?


1. Megszámlálós (for):

-akkor használjuk, ha tudjuk, hányszor szeretnénk ismételni az utasításokat -minden esetben tudjuk hányszor fog lefutni Általános alakja pszeudó kódban: 1. N:=10 2. Ciklus i:=1-től N-ig 3. utasitas 4. Ciklus vége

Magyarázat: 1. sorban N felveszi a 10-et, 2. sorban meghatározzuk a ciklusfeltételt 10X fusson le a ciklusunk.
Milyen feladatoknál használjuk:
Írd ki a neved 5-ször!
Kérj be a felhasználótól 8 számot!
Írd ki egy 30 elemű tömb értékeit!
Tömbkezeléssel kapcsolatos egyéb feladatok: pld. tömb bejárás
Meghatározott intervallumon belüli műveletek végzése, pld.:
ciklusmag
ciklusfeltétel
Írd ki a 10 és 80 közötti, 3-mal és 4-gyel is maradék nélkül osztható számokat! (12 24 36 48 60 72)

2. Elöl-tesztelős (while)

akkor használjuk, ha végrehajtás előtt szeretnénk ellenőrizni a ciklusfeltételt és nem tudjuk hányszor fog lefutni a ciklus lehet, hogy egyszer sem fut le, mert először ellenőrzi a feltételt és csak utána megy bele a ciklusmagba

Általános alakja pszeudó kódban: 1. Ciklus amíg feltétel
2. utasitas
3. Ciklus vége

Milyen feladatoknál használjuk:
pld. fájlkezelés, amíg a fájl végéig nem érünk olvassa be a sorokat (nem tudjuk, hány soros a fájl):
1. Ciklus amíg a fájl végéig nem érünk
2. Be:sor
3. Ciklus vége
3. Hátul-tesztelős (do-while)
a ciklusmag végrehajtása után ellenőrzi a ciklusfeltételt, így legalább egyszer biztosan lefut!


Általános alakja pszeudó kódban:
1. Ciklus
2. utasítás
3. Amíg feltétel
4. Ciklus vége

Milyen feladatoknál használjuk:
Kérj be számokat a felhasználótól mindaddig, amíg nem ad meg 0-at!
1. Ciklus
2. Be:szam
3. Amíg szam!=0
4. Ciklus vége
Generálj le véletlen számokat mindaddig, amíg nem lesz 6-os!
Kérj be számokat a felhasználótól mindaddig, amíg nem ad meg párosat!

Elágazások

egyirányú elágazás

if (felt) {
utasítások
}

kétirányú elágazás

if (felt) {
utasítások
} else {
utasítások
}

többirányú elágazás, a vizsgálat === operátorral történik
switch(kifejezés) {
case érték1:
utasítások
break;
case érték2:
utasítások
break;
default:
utasítások
}

FOR ciklus - Megszámlálós ciklus

Mikor használunk ciklust?

Ha egy vagy több műveletet többször szeretnénk végrehajtani.

Mikor használunk for ciklust?

Ha tudjuk, hogy hányszor kell ismételni.

Milyen részei vannak a ciklusnak?

Kezdőértékadás: let i = 0

Ciklusfeltétel: i < 5 Értéknövelés vagy értékcsökkentés: i++ (i-- vagy i = i + 3) iklusmag: console.log(i + 1); //ide írjuk az ismétlődő tevékenységet vagy tevékenységeket

Példákban milyen kulcsszavak jelennek meg?

Ismételd valahányszor, kérjunk be 8 db számot, kérjük be 5 felhasználó adatait intervallumvizsgálat, adatszerkezetbejárás - menjunk végig egy tömbbön Leggyakrabban használt ciklusfajta, az adatszerkezetek bejárása miatt.



Feladat01:
Írjuk ki a számokat 1-5-ig!
Megoldás01:
console.log("Feladat01: Számok 1-5:"); console.log("Megodás - let:"); for (let i = 0; i < 5; i++) { console.log(i + 1); //ciklusmag } console.log("i értéke: "+i); //Uncaught ReferenceError: i is not defined let i=0 miatt, az i értéke lokális, csak a for cikluson belül érhető el console.log("Megodás - var: "); for (var i = 0; i < 5; i++) { console.log(i + 1); } console.log("i értéke: " + i); //i értéke 5- i értéke bárhol elérhető

Megoldás02:
console.log("Feladat01 - 2. megoldás"); for (let i = 1; i <= 5; i++) { console.log(i); } console.log("Feladat01 - 3. megoldás");

Megoldás03:
for (let i = 1; i < 6; i++) { console.log(i); } javasolt for (let i = 0; i < 5; i++){} /****************************************************************************/ fv és eljárás nélkül is megoldható

Feladat02:
Kérjünk be egy ismétlésszámot és egy gyümülcsnevet! Írjuk ki a konzolra(összevonja) és felugró ablakban annyiszor (összefűzve vagy külön ablakokban), amilyen értéket megadott a felhasználó! console.log("Feladat02:"); let repeatNumber = Number(prompt("Kérem adja meg az ismétlésszámot: ")); let fruitName = prompt("Kérem adja meg a gyümülcsnevet: "); for (let i = 0; i < repeatNumber; i++) { console.log(fruitName); alert(fruitName); }

Feladat03:
10től visszafelé 1-ig írjuk ki a számokat a konzolra! console.log("Feladat03:"); for (let i = 10; i > 0; i--) { console.log(i); }

Feladat04:

Kérjük be az intervallum kezdő és végértékét (pozitiv szám), majd ebben az intervallumban írjuk ki a konzolra a 3-mal és 4-gyel maradék nélkül osztható számokat! Ha nem volt olyan szám, ami megfelel a feltételnek, akkor erről tájékoztassuk a felhasználót! console.log("Feladat4: intervallum, kezdő és végérték pozitív szám majd kiírás 3 és 4-el osztahtó számokat");

var start = Number(prompt("Kérem adja meg a kezdőértéket: ")); var end = Number(prompt("Kérem adja meg a végértéket: ")); let isNumberExsist = false; if (start < end && start > 0 && end > 0) { for (var i = start; i <= end; i++) { if (i % 3 === 0 && i % 4 === 0) { console.log(i); isNumberExsist = true; } } } else { alert("Hibás értéket adott meg!"); //nem kéri be újra az értéket - do-while, while-al megoldható } if (!isNumberExsist) { alert("Nincs olyan szám az intervallumban, ami osztható 3-mal és 4-gyel m.n."); } //vezérlési szerkezetek egymásba ágyazhatóak, akár több szinten, de 2-3 szintnél // ne legyen több - CC alapján // Hibás felépítés: // if (){ // if (){ // for(){ // if(){ // // }else { // for(){ // } // } // } // } // ) else { // while(){ // // } // } // ciklomatikus komplexitás: fenti kódnak magas // megoldás: függvények, eljárások használata

// Feladat05:

Kérjük be 5 darab számot, majd külön-külön mindegyik számról, döntsük el azt, hogy osztható -e 3-mal maradék nélkül! Tömbhasználat nélkül!!! // Az eredményt felugró ablakban jelenítsuk meg!

//CC code smell - bad pratice // let szam1 = Number(prompt("Kérem adja meg egy számot: ")); // let szam2 = Number(prompt("Kérem adja meg egy számot: ")); // let szam3 = Number(prompt("Kérem adja meg egy számot: ")); // let szam4 = Number(prompt("Kérem adja meg egy számot: ")); // let szam5 = Number(prompt("Kérem adja meg egy számot: ")); console.log("Feladat05 megoldása: "); for (var i = 0; i < 5; i++) { var number = Number(prompt("Kérem, adjon meg egy számot:")); if (number % 3 == 0) { alert(number + " osztható 3-mal maradék nélkül!"); } else { alert(number + " nem osztható 3-mal maradék nélkül."); } }

// Feladat06:

500 és 600 között írjunk ki minden 3. számot a konzolra! console.log("Feladat5: 500-600 között minden harmadik szám consoleon");

var start = 500; var end = 600; var step = 3; for (var i = start; i <= end; i = i + step) { console.log(i); }

/**************************************************************************/ // Speciális szintakszis: JS MAGIC //

Keződérték kimarad, ha előtt 0-val deklaráltam

let k = 0; console.log("Speciális szintakszis:"); for (; k < 6; k++) { console.log(k); //0 1 2 3 4 5 }


DoWhile

Elöltesztelős ciklus:
Nem tudjuk, hogy hányszor kell lefuttatni,
Elöször megnézi a ciklusfeltételt, ha igaz, akkor végrehajta, amit ciklusmagban talál.
Feladatokban: addig, amig

Feladat01: Kérjünk be egy számot, majd döntsük el, hogy hárommal és néggyel maradék nélkül osztható -e!
Alg: általános megoldás legyen - változókkal (a felhasználó bármilyen értéket megadhat)

Helyesen: Ha number % 3 = 0 és number % 4 = 0, akkor
Program
Be:number
Ha number % 3 = 0 és number % 4 = 0, akkor
Ki: Osztható 3 mn. és 4-el mn.
Különben
Ki: Nem osztható 3 mn. és 4-el mn.
Elágazás vége
Program vége
//JS var numberInput = Number(prompt("Kérem adjon meg egy egész számot (3 és 4 mn. vizsgálat"));
if (numberInput % 3 ==0 && numberInput %4 ==0 ){
console.log("Osztható 3 mn. és 4-el mn.");
} else {
console.log("Nem osztható 3 mn. és 4-el mn.");
} // Megértés előssegítésére - konkrét értékek
number - 6 (ezt adta meg)
Visszatérés - Nem osztható 3 mn. és 4-el mn.
number - 8 - Nem osztható 3 mn. és 4-el mn.
number - 12 - Osztható 3 mn. és 4-el mn.

//Feladat02: Kérjünk be egy számot, majd döntsük el, hogy hárommal vagy néggyel maradék nélkül osztható -e!
var numberInput = Number(prompt("Kérem adjon meg egy egész számot (3 vagy 4 mn. vizsgálat"));
if (numberInput % 3 ==0 || numberInput %4 ==0 ){
console.log("Osztható 3 mn. vagy 4-el mn.");
} else {
console.log("Nem osztható 3 mn. vagy 4-el mn.");
}

// Megértés előssegítésére - konkrét értékek number - 6 (ezt adta meg) Visszatérés - Osztható 3 mn. vagy 4-el mn. number - 8 - Osztható 3 mn. vagy 4-el mn. number - 12 - Osztható 3 mn. vagy 4-el mn. /****************************************************************/ /********************* Ciklusok ********************************/ /**************************************************************/ //FOR ciklus - megszámlálós ciklus // pszeudó kód 1. N:=10 2. Ciklus i:=1-től N-ig 3. utasitas 4. Ciklus vége //JS var i = 0 - kezdőérték adás (csak az első futásnál van jelentőssége) i<5 - ciklusfeltétel vizsgálata i++ - értéknövelés for (var i = 0; i<5; i++){ console.log("Helló, Világ"); alert("Helló, Világ"); } i++ ua. i = i+1 Futások száma i értéke Vizsgálat 1. 0 0<5 ---- IGAZ - LEFUT: clg(), alert() 2. 1 1<5 ---- IGAZ - LEFUT: clg(), alert() 3. 2 2<5 ---- IGAZ - LEFUT: clg(), alert() 4. 3 3<5 ---- IGAZ - LEFUT: clg(), alert() 5. 4 4<5 ---- IGAZ - LEFUT: clg(), alert() 6. 5 5<5 ---- HAMIS - NEM FUT LE //5X fut le //szintén 5X fut le for (var i = 1; i< 6; i++){ console.log("Helló, Világ"); alert("Helló, Világ"); } //szintén 5X fut le for (var i = 1; i<= 5; i++){ console.log("Helló, Világ"); alert("Helló, Világ"); } //javasolt szintakszis var iterationCount = 10; for (var i = 0; i