Lectia1 Continut
Lectia1 Continut
De ce să studiezi JavaScript?
JavaScript este una dintre cele 3 limbi pe care toți dezvoltatorii web trebuie să le învețe:
Exemplul de mai jos „găsește” un element HTML (cu id = „demo”) și schimbă conținutul elementului
(innerHTML) în „Hello JavaScript”:
Exemplu 1
<!DOCTYPE html>
<html>
<body>
</body>
</html>
Schimbarea stilului unui element HTML este o variantă a schimbării unui atribut HTML:
Exemplu 3
<!DOCTYPE html>
<html>
<body>
</body>
</html>
Exemplu 4
<!DOCTYPE html>
<html>
<body>
</body>
</html>
Eticheta <script>
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript in Body</h2>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = "Primul meu JavaScript";
</script>
</body>
</html>
Un JavaScript functioneaza ca un bloc de cod JavaScript, care poate fi executat atunci când este
„apelat” pentru a face ceva.
De exemplu, o funcție poate fi apelată atunci când apare un eveniment , ca atunci când utilizatorul
face clic pe un buton.
Scripturile pot fi plasate în <body>, sau în <head> secțiunea unei pagini HTML, sau în ambele.
JavaScript în <head>
Exemplu 6
<!DOCTYPE html>
<html>
<head>
<script>
function myFunction() {
document.getElementById("demo").innerHTML = "Paragraf modificat.";
}
</script>
</head>
<body>
<h2>JavaScript in Head</h2>
</body>
</html>
JavaScript în <body>
În acest exemplu, un JavaScript functioneaza plasat în <body> secțiunea unei pagini HTML.
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript in Body</h2>
</body>
</html>
JavaScript extern
function myFunction() {
document.getElementById("demo").innerHTML = "Paragraf modificat.";
}
Scripturile externe sunt practice atunci când același cod este utilizat în multe pagini web diferite.
Pentru a utiliza un script extern, puneți numele fișierului script în src atributul (sursă) al unei <script>
etichete:
Exemplu 8
<!DOCTYPE html>
<html>
<body>
<script src="myScript.js"></script>
</body>
</html>
Puteți plasa o referință de script externă în <head> sau <body> după cum doriți.
Scriptul se va comporta ca și cum ar fi fost localizat exact unde <script> se află eticheta.
Pentru a adăuga mai multe fișiere script pe o pagină - utilizați mai multe etichete script:
<script src="myScript1.js"></script>
<script src="myScript2.js"></script>
Referințe externe
Scripturile externe pot fi referite cu un URL complet sau cu o cale relativă la pagina web curentă.
<script src="https://www.w3schools.com/js/myScript1.js"></script>
Acest exemplu folosește un script situat într-un folder specificat de pe site-ul web curent:
<script src="/js/myScript1.js"></script>
<script src="myScript1.js"></script>
JS HTML DOM
Așadar, ați studiat HTML, ați creat primele etichete, ați aflat despre CSS, ați creat forme frumoase,
butoane uimitoare, pagini receptive și ați început să arătați tuturor cât de uimitor a fost tot ceea ce a
fost.
Dar apoi decideți că doriți să faceți un alt pas în învățarea dvs. și ați început să vă întrebați: „Cum pot
adăuga animație pe pagina mea? Mi-aș dori ca acel buton să facă niște animații pe pagina mea când
am dat clic pe ea! ”
Ei bine, aici vine DOM-ul pentru a vă rezolva problema. Probabil că ați auzit multe despre asta, dar s-
ar putea să nu știți încă ce este și ce probleme rezolvă. Deci, să vedem.
Știți toate acele animații interesante pe care le vedeți în jur, sunt realizate prin manipularea DOM.
Vă voi explica acum cum să începeți să îl manipulați și să vă faceți site-urile web să pară mai cool.
DOM (Document Object Model) este o interfață care reprezintă modul în care documentele dvs.
HTML și XML sunt citite de browser. Permite unui limbaj (JavaScript) să vă manipuleze, structura și
stiliza site-ul. După ce browserul citește documentul dvs. HTML, creează un arbore reprezentativ
numit Model de obiect document și definește modul în care arborele poate fi accesat.
Avantaje
Prin manipularea DOM, aveți posibilități infinite. Puteți crea aplicații care actualizează datele paginii
fără a fi nevoie de o reîmprospătare. De asemenea, puteți crea aplicații care pot fi personalizate de
utilizator și apoi puteți schimba aspectul paginii fără o reîmprospătare. Puteți trage, muta și șterge
elemente.
După cum am spus, aveți posibilități infinite - trebuie doar să vă folosiți creativitatea.
În imaginea de mai sus, putem vedea arborele reprezentativ și cum este creat de browser. În acest
exemplu, avem patru elemente importante pe care le veți vedea foarte mult:
- Document : tratează toate documentele HTML .
- Elemente : toate etichetele din interiorul HTML sau XML se transformă într-un element
DOM.
- Text : tot conținutul etichetelor.
- Atribute : toate atributele dintr-un anumit element HTML . În imagine, atributul class =
”erou” este un atribut din elementul < p>.
Pentru a accesa obiectul DOM, pe care îl analizează JavaScript, vom deschide consola oricărei pagini
web și vom introduce cuvantul cheie document, iar JavaScript va crea imediat obiectul document, în
care vom vizualiza elementele DOM.
Manipularea DOM
Acum ajungem la cea mai bună parte: începând să manipulăm DOM. În primul rând, vom
crea un element HTML ca exemplu pentru a vedea câteva metode și cum funcționează
evenimentele.
Exemplu 9
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Entendendo o DOM (Document Object Model)</title>
</head>
<body>
<div class="container">
<h1><time>00:00:00</time></h1>
<button id="start">Start</button>
<button id="stop">Stop</button>
<button id="reset">Reset</button>
</div>
</body>
</html>
Foarte simplu, nu? Acum vom afla mai multe despre metodele DOM: cum să obținem elementele
noastre și să începem să manipulăm.
Cu modelul obiect, JavaScript primește toată puterea de care are nevoie pentru a crea HTML
dinamic:
Ce este DOM?
"Modelul de obiecte document W3C (DOM) este o interfață neutră de platformă și limbă, care
permite programelor și scripturilor să acceseze și să actualizeze dinamic conținutul, structura și stilul
unui document."
HTML DOM este un model de obiect standard și o interfață de programare pentru HTML. Acesta
definește:
Cu alte cuvinte: HTML DOM este un standard pentru cum să obțineți, să modificați, să adăugați sau
să ștergeți elemente HTML.
Metode
Metodele HTML DOM sunt acțiuni pe care le puteți efectua (pe elemente HTML).
Proprietățile DOM HTML sunt valori (ale elementelor HTML) pe care le puteți seta sau modifica.
DOM-ul HTML poate fi accesat cu JavaScript (și cu alte limbaje de programare). În DOM, toate
elementele HTML sunt definite ca obiecte . Interfața de programare este proprietățile și metodele
fiecărui obiect.
O proprietate este o valoare pe care o puteți obține sau seta (cum ar fi schimbarea conținutului unui
element HTML).
O metodă este o acțiune pe care o puteți face (cum ar fi adăugarea sau ștergerea unui element
HTML).
DOM are o mulțime de metode. Acestea sunt conexiunea dintre nodurile (elementele) și
evenimentele noastre, lucru despre care vom afla mai multe mai târziu. Îți voi arăta câteva dintre
cele mai importante metode și modul în care sunt folosite. Există mult mai multe metode pe care nu
le voi arăta aici, dar le puteți vedea pe toate aici .
Exemplu 10
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = "Hello World!";
</script>
</body>
</html>
În exemplul de mai sus, getElementById este o metodă , în timp ce innerHTML este o proprietate .
Obiectul document HTML DOM este proprietarul tuturor celorlalte obiecte din pagina dvs. web.
Dacă doriți să accesați orice element dintr-o pagină HTML, începeți întotdeauna cu accesarea
obiectului document.
Mai jos sunt câteva exemple despre modul în care puteți utiliza obiectul document pentru a accesa și
manipula HTML.
Metode Descriere
document.getElementById(id) Găsește elementul după id
document.getElementsByTagName(name) Găsește elementul după numele etichetei
document.getElementsByClassName(name) Găsește elementul după numele clasei
document.querySelectorAll("selector css")
prin colecții de obiecte HTML (exemplu mai jos
va fi
Schimbarea elementelor HTML
Proprietate Descriere
element.innerHTML = new html content Modifică inner HTML al elementului
element.attribute = new value Modifică valoarea atributului elementului
element.style.property = new style Modifică stilul elementului
Metode Descriere
element.setAttribute(attribute, value) Modifică valoarea atributului elementului
HTML
getElementById ()
Cel mai comun mod de a accesa un element HTML este de a utiliza id elementul. În exemplul de mai
sus metoda getElementById utilizată id="demo"pentru a găsi elementul.
Cel mai simplu mod de a obține conținutul unui element este prin utilizarea proprietății innerHTML.
Exemplu 11
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var myElement = document.getElementById("intro");
document.getElementById("demo").innerHTML =
"Textul din paragraf este " + myElement.innerHTML;
</script>
</body>
</html>
Proprietatea innerHTML este utilă pentru obținerea sau înlocuirea conținutului de elemente HTML.
Proprietatea innerHTML poate fi folosită pentru a obține sau de a modifica orice element HTML,
inclusiv <html>și <body>.
Această metodă returnează elementul care conține numele id trecut. După cum știm, id -ul ar trebui
să fie unic, deci este o metodă foarte utilă pentru a obține doar elementul dorit.
var myStart = document.getElementsById('start');
start : id trecut. Și în cazul în care nu avem niciun id cu acel nume specific, acesta revine nul .
getElementsByClassName ()
Această metodă returnează o colecție HTML a tuturor acelor elemente care conțin clasa de nume
specifică trecută.
Dacă doriți să găsiți toate elementele HTML cu același nume de clasă, utilizați
getElementsByClassName().
Exemplu 13
<!DOCTYPE html>
<html>
<body>
<p>Hello World!</p>
<p id="demo"></p>
<script>
var x = document.getElementsByClassName("intro");
document.getElementById("demo").innerHTML =
'Textul din paragraf cu class="intro": ' + x[0].innerHTML;
</script>
</body>
</html>
myContainer : Numele variabilei noastre care arată similar clasei noastre a fost trecut.
.container : clasa noastră a trecut. În cazul în care nu avem nicio clasă cu acel nume specific, se
returnează nul .
getElementsByTagName ()
Exemplu 12
<!DOCTYPE html>
<html>
<body>
<p>Hello World!</p>
<p>Acest exemplu demonstrează metoda <b>getElementsByTagName</b>.</p>
<p id="demo"></p>
<script>
var x = document.getElementsByTagName("p");
document.getElementById("demo").innerHTML =
'Textul din paragraf este ' + x[0].innerHTML;
</script>
</body>
</html>
Aceasta funcționează la fel ca acele metode de mai sus: returnează și o colecție HTML, dar de data
aceasta cu o singură diferență: returnează toate acele elemente cu numele etichetei trecut.
buttons : Numele variabilei noastre care arată similar cu numele etichetei noastre a fost trecut.
Exerciții:
2. Scrieți codul DOM pentru a selecta toate elementele <article>.
querySelector ()
Returnează primul element care are trecut selectorul CSS specific . Amintiți-vă că selectorul ar trebui
să urmeze sintaxa CSS . În cazul în care nu aveți niciun selector , acesta revine nul .
Exemplu 14
<!DOCTYPE html>
<html>
<body>
<p>Hello World!</p>
<p id="demo"></p>
<script>
var x = document.querySelector("p.intro");
document.getElementById("demo").innerHTML =
'Primul paragraf ce are class="intro": ' + x.innerHTML;
</script>
</body>
</html>
resetButton : Numele variabilei noastre care arată similar cu selectorul nostru a trecut.
#reset : selectorul a trecut, iar dacă nu aveți niciun selector care se potrivește, acesta va reveni la
nul.
Exerciții
2. Scrieți .querySelector()codul pentru a găsi primul element paragraf care are clasa: callout.
R: document.querySelector ('p.callout');
querySelectorAll ()
Foarte similar cu metoda querySelector () , dar cu o singură diferență: returnează toate elementele
care se potrivesc cu selectorul CSS trecut. Selectorul ar trebui să urmeze , de asemenea, sintaxa CSS .
În cazul în care nu aveți niciun selector , acesta revine nul .
Exemplu 15
<!DOCTYPE html>
<html>
<body>
<p>Hello World!</p>
<p id="demo"></p>
<script>
var x = document.querySelectorAll("p.intro");
document.getElementById("demo").innerHTML =
'Primul paragraf cu (index 0) ce are class="intro": ' + x[0].innerHTML;
</script>
</body>
</html>
myButtons : Numele nostru de variabilă care arată similar cu selectorii noștri a trecut.
#buttons : selectorul a fost trecut, dacă nu aveți niciun selector care se potrivește cu acesta, revine
nul .
Exercitiu
Acest exemplu găsește elementul formular cu id="frm1", în colecția de formulare, și afișează toate
valorile elementului:
Exemplu 16
<!DOCTYPE html>
<html>
<body>
<button onclick="myFunction()">Incearca-l</button>
<p id="demo"></p>
<script>
function myFunction() {
var x = document.forms["frm1"];
var text = "";
var i;
for (i = 0; i < x.length ;i++) {
text += x.elements[i].value + "<br>";
}
document.getElementById("demo").innerHTML = text;
}
</script>
</body>
</html>
Acestea sunt unele dintre cele mai utilizate metode DOM. Există mai multe metode pe care le puteți
utiliza, cum ar fi createElement (), care creează un element nou în pagina dvs. HTML și setAttribute ()
care vă permite să setați atribute noi pentru elementele HTML. Le poți explora singur.
Acum vom învăța despre Evenimente - până la urmă fără ele nu putem face animații în paginile
noastre.
Exercitii practice
R: document.getElementById(”demo”).innerHTML=”Hello”;