Skip to main content

Javascript


Lietošana

JavaScript lieto, lai mājas lapai piešķirtu dinamiku un interaktivitāti.

html-css-js

Izmantotais attēls: edureka.co

Lai sāktu mājaslapā rakstīt Javascript kodu jālieto <script type="application/javascript"></script> birkas.

Var izmantot arī vienkāršo variantu <script></script>

Piemērs:


<script type="application/javascript">

</script>

Vai - otrs variants.


<script>
    
// Javascript kods

</script>

Lai iekļautu savā lapā ārējo Javascript kodu:

<script src="mansskripts.js"></script>

<script> tagu vēlams ievietot body bloka beigās!

Ārējie Javascript faili var tikt uzturēti uz cita servera. Ja skripts uz ārējā servera tiek noņemts, tad arī vietnē netiks ielādēts šis fails.

Galvenā atšķirība starp koda glabāšanu lapā un ārējā failā ir tāda, ka ārējo failu pārlūkprogramma var kešot, tāpēc, ja kods tiek mainīts, tad var rasties problēmas ar jaunākā koda ielādi.

Kešot - saglabāt datus, lai nākamreiz tos varētu ātrāk ielādēt. Pārlūks glabā informāciju par kešotajiem failiem un jaunākās versijas ielādē tikai tad, ja ir mainījies fails.

Lai izvairītos no kešošanas, var pievienot faila nosaukumam unikālu skaitli, piemēram, mansskripts.js?versija=1.

Brīdī kad tiek ielādēts fails, pārlūkprogramma neskatās uz faila saturu, bet uz faila nosaukumu. Ja nosaukums ir mainīts, tad pārlūkprogramma uzskata, ka tas ir jauns fails un ielādē to no jauna.

Komentāri kodā

Komentāri kodā ir svarīgi, lai citi programmētāji varētu saprast, kas ir kodā rakstīts. Komentāri ir koda daļa, kas netiek izpildīta.


alert("Paziņojuma lodziņš");

// Vienas rindas komentārs
/*
Vairāku 
rindu 
komentārs
*/

Brīdinājumi konsolē

Programmētājs, lai atkļūdotu savu kodu, var veidot dažādus paziņojumus konsolē. Konsole parādās, ja lietotājs pārlūkā nospiež labo peles klikšķi un tad izvēlas Inpect -> Console vai ar taustiņu kombināciju Ctrl + Shift + J.

Ir trīs veida paziņojumi.

Informatīvais - informē par kādu koda darbības posmu.

Kļūda - parasti kļūdu veida paziņojumi, tiek izmantots arī sintakses kļūdu gadījumos.

Parasts paziņojums - parasts teksts konsolē.

Visi trīs paziņojumi attēloti bildē.

Kods

console.log("Parasts teikums konsolē");
console.warn("Brīdinājums konsolē");
console.error("Kļūda konsolē");

Mainīgie

Mainīgie ir vērtības, kas var tikt izmantotas vairākas reizes kodā. Mainīgajam var piešķirt vērtību un to izmantot kodā.

Mainīgajiem nav jāpieraksta to veids, bet mainīgo nosaukumam priekšā jāraksta vārdu let.

Ir diezgan svarīga atšķirība, jo literatūrā parādās apzīmējums var, bet šis apzīmējums ir novecojis un to vairs neizmanto.

Tiek izšķirti divi mainīgo veidi - skaitliskie un tekstuālie. Papildus ir masīvi un JSON objekti.

Piemērs:


let x = 1; // Skaitlisks mainīgais

let vards = "Mans vārds ir Pēteris"; // Tekstuāls mainīgais

let atzimes = [1,2,3,4,5]; // Skaitlisks masīvs

let teksta_masivs = ["Krūmi", "Koks", "Stabs"]; // Tekstuāls masīvs

Skaitliskos mainīgos no tekstuālajiem mainīgajiem atšķir ar pēdiņu lietojumu. Decimālie skaitļi tieši tāpat tiek pierakstīti kā veselie skaitļi,bet izmanto punktu tam paredzētajā vietā.

Daži piemēri skaitliskajiem mainīgajiem.

let x = 1;
let maingaisviens = 1124123;
let pi = 3.14159265359;

Tekstuālos mainīgos pievieno ar pēdiņām. Tekstu raksta starp pēdīņām.


let garss_teksts = "Javscript ir programmēšanas valoda, bet HTML nav.";

Mainīgo sasaiste

Mainīgos var saistīt kopā, lai iegūtu jaunu mainīgo.


let x = 1;
let y = 2;
let z = x + y;

Šajā piemērā mainīgais z ir vienāds ar 3, jo x un y ir saistīti kopā. Tā kā šie abi mainīgie ir skaitlis, tad tiek veikta matemātiska darbība.

Piemērs ar tekstuāliem mainīgajiem.


let vards = "Mans vārds ir ";
let uzvards = "Pēteris";

let pilns_vards = vards + uzvards;

Šajā piemērā mainīgais pilns_vards ir vienāds ar Mans vārds ir Pēteris, jo vards un uzvards ir saistīti kopā, tie ir teksti un tiek apvienoti, nav iespējams veikt matemātisko darbību.

Ja tiek saistīti kopā skaitliskie un tekstuālie mainīgie, tad skaitliskie mainīgie tiek pārveidoti par tekstuāliem.


let vards = "Mans vārds ir ";
let vecums = 30;

let pilns_vards = vards + vecums;

Šajā piemērā mainīgais pilns_vards ir vienāds ar Mans vārds ir 30, jo vards ir teksts un vecums ir skaitlis, bet skaitlis tiek pārveidots par tekstu.

Masīvi

Masīvus pielieto, lai apvienotu vairākus mainīgos vienā. Skatām piemēru.


let pirmais = 1;
let otrais =  2;
let tresais  = 3; 

Ir redzams, ka tiek veidoti 3 mainīgie. Šos trīs mainīgos varam apvienot vienā masīvā.

Masīvā katru elementu raksta atdalot ar komatu. Sāk rakstīt ar [ un noslēdz ar ]


let skaitli = [1,2,3];

Iepriekš, lai izmantotu mainīgo, rakstījām tā vārdu,bet izmantot masīva konkrētos elementus var, saucot tā nosaukumu un kvādrātiekavās tā indeksu.

Indekss - elementa kārtas skaitlis masīvā. Masīvā indeksus sāk skaitīt no 0.

Ja mēs gribam iegūt no masīva, ar nosaukumu skaitli, trešo elementu, kurš vienāds ar 3, tad raksta komandu skaitli[2].

Tieši tāpat kā notiek skaitlisko masīvu veidošana, tiek veidoti arī tekstuālie. Piemērā dots masīvs ar skolas priekšmetu nosaukumiem.


let prieksmeti = ["Latviešu valoda","Sports","Programmēšana","Datorika","Matemātika"];

Lai iegūtu programmēšanas priekšmetu no masīva, raksta komandu prieksmeti[2], jo šis elements masīvā (skaitot no 0 indeksa) ir otrais.

Masīvos var tikt miksēti tekstuālie elementi un skaitliskie elementi.


let prieksmeti = ["Latviešu valoda",1,"Programmēšana",3,6543];

JSON

JSON jeb JavaScript Object Notation ir datu turēšanas veids. Veids kā var tikt strukturēti dati objektā. JSON formāts ļauj drošā struktūrā pārsūtīt datus no klienta uz serveri konkrētā formātā.

Piemērs:


{
	"skoleni":[
		{"vards":"Jānis", "uzvards":"Koks", vecums: 12},
		{"vards":"Anna", "uzvards":"Stabiņa"}
	]
}

Šādā veidā var strukturēt datus JSON objektā.

Kā izmantot šādus datus?

let obj = JSON.parse('{ "vards":"Valērijs Visvaris", "vecums":30, "pilseta":"Rīga"}');
// Lai iegūtu datus no šī objekta izmanto mainīgā nosaukumu un atslēgu:

alert(obj.vards + ", " + obj.pilseta);

// Paziņojumā tiks paziņots vārds un pilsēta.

Ja mums ir vairāki elementi objektā:

let obj = JSON.parse('[ { "vards":"Valērijs Visvaris", "vecums":30, "pilseta":"Rīga"},{ "vards":"Anna Bauma", "vecums":12, "pilseta":"Rīga"} ]');
for (let i=0; i < obj.length; i++) {
    console.log(obj[i].vards);
}

Konsolē tiks izdrukāti visi elementi objektā ar atslēgu vards.

Ja ir vairāki kā viens elements objektā, objekts sākas ar [ un beidzas ar ], jo tas ir masīvs.

Loģiskie operatori

Loģiskie operātori ļauj pārbaudīt vai tiek izpildīts nosacījums. Nosacījumu veidošana ir apskatīta zemāk.

OperatorsAprakstsPiemērs
==Vienāds4 == 4
===Vienāds4 === 4
!=Nav vienāds4 != 3
!==Nav vienāds4 !== 3
>Lielāks4 > 3
>=Lielāks vienāds
<Mazāks4 < 5
<=Mazāks vienāds
&&Un (and)4 && 4
||vai (or)saldējums vai medus

Vairāk: https://www.w3schools.com/js/js_operators.asp

Par "===" un " == " skatīt zemāk.

Nosacījumu veidošana

Javascript programmēšanas valodā nosacījums tiek veikts ar vārdu if un nosacījumu darbības atdala ar figūriekavām.

if( nosacījums ){

    Darbība

}else{

    Pretēja darbība
}

Gadījumos, ja ir vairāku nosacījumu pārbaude:

if( nosacījums ){

    Darbība

}else if( nosacījums ){

    Darbība

}else{

    Pretēja darbība

}

Piemērs nr.1 - viens nosacījums:

let x = 0; // Mainīgais x ir vienāds ar vērtību 0
let y = 5; // Mainīgais y ir vienāds ar vērtību 5

if ( x === 5){

    alert("X ir vienāds ar 5");

}else{

    alert("X nav vienāds ar 5");

}

Piemērs nr.2 - divi nosacījumi:

let x = 0; // Mainīgais x ir vienāds ar vērtību 0

if (x > 0 && x <= 10){ // Tiek pārbaudītas divas loģiskās izteiksmes uzreiz.
    // Tiek pārbaudīts vai x ir lielāks par 0 un mazāks par 10 (ieskaitot) vienlaicīgi
    alert("X ir lielāks par 0 un mazāks par 10");
}else if (x > 10){
    // Tiek pārbaudīts vai x ir lielāks par 10
    alert("X ir lielāks par 10");
}else{
    // Ja neviens no nosacījumiem nav izpildījies
    alert("X ir mazāks par 0");
}

Piemērs nr.3 - salīdzina ar tekstu:

let skolens = "Visvaldis"; // Mainīgais skolens ir vienāds ar tekstu "Visvaldis"

if(skolens == "Visvaldis"){
    alert("Skolens ir vienāds ar tekstu Visvaldis");
}else{
    alert("Skolens nav vienāds ar tekstu Visvaldis");
}

Šeit nav svarīga stingrā vienādība, jo teksts nevar skaitlis. Tāpēc šeit tiek izmantots == apzīmējums.

Svarīgi!

Javascript programmēšanas valodā tiek lietots vienādības apzīmējums ar 3 vienādības zīmēm === un divām.
Atšķirība ir tāda, ka === pārbauda arī mainīgo tipu, bet == nē.

Piemēram doti divi mainīgie:

let x = 5; //  Šis ir skaitlis
let x_tekstuals = "5"; // Šis ir teksts, bet tā vērtība ir skaitlis 5 - noformēts kā teksts!
if(x == x_tekstuals){

    console.log("Šie ir vienādi, ja ignorē mainīgo tipu");
    // Šis nostrādā, jo 5 kā skaitlis ir vienāds ar 5 kā tekstu.
}

if (x === x_tekstuals){
    
    console.log("Šie ir vienādi, ja svarīgs ir mainīgo tips!");
    // Šis nenostrādā, jo mainīgo tipi ir atšķirīgi - viens ir teksts otrs ir skaitlis.
}else{
    console.log("Šie nav vienādi, jo mainīgo tipi ir atšķirīgi!");
    // Šis nostrādā, jo mainīgo tipi ir atšķirīgi un šis ir pretējs nosacījums.
}

Cikli

For cikli

Javascript programmēšanas valodā ir divu veidu cikli for un while.

For ciklu lieto gadījumos, kad ir vajadzīgs cikla skaitītājs un ciklam ir noteikts galapunkts un/vai sākumpunkts.

Pielietojums:

for( SĀKUMA VĒRTĪBA; PILDĪT KAMĒR; SOLIS){

    Darbība;

}

Piemērā dots noteiktais cikls, kura sākuma vērtība ir 0 un tā tiek glabāta mainīgajā sk. Cikls tiek pildīts kamēr sk ir mazāks par 10 un katrā cikla solī sk tiek palielināts par 1.

sk - sevī satur cikla skaitītāju. Katru reizi tas palielinās par vienu vienību, to nosaka sk++. sk++ - tas ir tas pats, kas sk = sk + 1.

Kods
for( let sk = 0; sk< 10; sk++ ){

    console.log(sk); // Konsolē tiks izvadīts skaitlis intervālā no 0 līdz 9

}

Ir iespējams arī mainīt cikla sākuma vērtību un soli.

Kods
for( let sk = 10; sk> 0; sk-- ){

    console.log(sk); // Konsolē tiks izvadīts skaitlis intervālā no 10 līdz 1

}

Šim ciklam ir iespējams mainīt soli, lai cikls skaitītu katru otro skaitli.

Kods
for( let sk = 0; sk< 10; sk+=2 ){

    console.log(sk); // Konsolē tiks izvadīts skaitlis intervālā no 0 līdz 8

}

Varam arī izmantot cikla skaitītāju, lai to parādītu lapā mums saprotamā formātā.


for( let sk = 0; sk< 10; sk++ ){

    document.write(sk + ".elements <br>"); // Izmantojot document.write, skaitītājs tiks izvadīts lapā

}

For in un For of cikli

JavaScript valodā pastāv vēl divi īpaši for cikla veidi, tie ir for in un for of.

Lai labāk saprastu, kā tie strādā, apskatīsim piemēru...

Kods
let draugi = ["Emīls", "Juris", "Reinis", "Dace"];
for (indekss in draugi) {
    console.log(draugi[indekss]);
}

Piemērā nodefinēts masīvs, kurā, izmantojot for in ciklu ar skaitītāju indekss, caurskata visas vērtības un izdrukā tās konsolē.

Izdarīsim to pašu ar for of ciklu...

Kods
let draugi = ["Emīls", "Juris", "Reinis", "Dace"];
for (draugs of draugi) {
    console.log(draugs);
}

Šeit cikla skaitītājs satur nevis indeksu, bet jau pašu masīva elementu.

Šo paņēmienu ērti pielietot, caurskatot atlasītus HTML elementus, piemēram, tabulas rindas.

let rindas = document.getElementById("tabula").rows;
for (row of rows) {
    //...darbība katrai rindai...
}

While cikli

Javascript programmēšanas valodā ir divu veidu cikli for un while.

While ciklu lieto gadījumos, kad nav vajadzīgs cikla solis un cikls tiek pildīts līdz konkrētai darbībai.

Pielietojums:

while( NOSACĪJUMS ){

    Darbība;

}

Piemērs:

let pildi = true;

while(pildi == true){

    console.log("Šī darbība notiek kamēr vien mainīgais PILDI ir vienāds ar TRUE");

}

Elementu pievienošana lapā

Elementu izveido ar document.createElement([birka])


let virsraksts = document.createElement("h1");

Pēdiņās raksta elementa birkas nosaukumu, piemēram, h1, p, div utt.

Lai tas būtu redzams, elementu jāpievieno body blokam ar appendChild([elements])


document.body.appendChild(virsraksts);

Piemērs

Ja vēlamies ar Javascript palīdzību uztaisīt dizainētu div birku, tad izmantosim šādu kodu:



let jauns_div = document.createElement("div");
jauns_div.style.backgroundColor = "red"; // uzliekam fona krāsu uz sarkanu
jauns_div.style.width = "100px"; // uzliekam platuma izmēru
jauns_div.style.height = "100px"; // uzliekam augstuma izmēru
jauns_div.style.border = "1px solid black"; // uzliekam apmales biezumu un krāsu
jauns_div.style.margin = "10px"; // uzliekam atstarpi no citiem elementiem
jauns_div.style.padding = "10px"; // uzliekam iekšējo atkāpi
jauns_div.style.textAlign = "center"; // uzliekam teksta centēšanu
jauns_div.style.color = "white"; // uzliekam teksta centēšanu
jauns_div.innerHTML = "Šis ir mana apgabala saturs!"; // uzliekam tekstu
document.body.appendChild(jauns_div); // pievienojam body blokam

Iznākums:

Izveidots div elements

Lokālā krātuve (localStorage)


cookie-local-session Attēls: loginradius.com

Jau noskaidrojām, ka mainīgie datus glabā tikai īslaicīgi un, aizverot lapu, savas vērtības pazaudē. Tāpēc lieto lokālo krātuvi...

Tā darbojas līdzīgi kā sīkdatnes un ir piesaistīta konkrētai mājas lapai, taču pieejams daudz lielāks atmiņas apjoms līdz pat 10MB un dati glabājas JSON formātā.

Dati no lokālās krātuves tiek dzēsti, notīrot parlūkošanas vēsturi pārlūkprogrammā visā periodā.

Apskatīsim, kā saglabāt datus lokālā krātuvē.

localStorage.setItem("apmekletajs", "Ilze");

Lokālā krātuvē ērti saglabāt dažādus lapas iestatījumus, piemēram, izvēlēto valodu

localStorage.setItem("valoda", "Eng");

Lai nolasītu vērtību, lieto getItem()

var valoda = localStorage.getItem("valoda");

Vērtību dzēš ar removeItem()

localStorage.removeItem("valoda");

Visu lokālo krātuvi dzēš ar clear()

localStorage.clear();

Sesijas krātuve (sessionStorage)

Sesijas krātuve darbojas ļoti līdzīgi, bet tajā dati saglabājas tikai sesijas laikā. Aizverot cilni vai pārlūkprogrammu, tie dzēšas.

Elementu atlase lapā

Lai atlasītu kādu elementu dokumentā pēc tā identifikatora izmanto:

Ieteicams identifikātorus lapā turēt unikālus!


let vertiba = document.getElementById("identifikators");

Kur vārda identifikators lieto unikālo identifikatoru. HTML birkā to raksta: id="identifikators"

Lai atlasītu kādu elementu dokumentā pēc tā klases izmanto:

Klases elementiem lapā var atkārtoties


let vertiba = document.getElementsByClassName("manaklase");

Kur vārda manaklase lieto elementa Class identifikatoru. HTML birkā to raksta: class="manaklase"

Elementu satura, krāsas maiņa ar Javascript

Lai mainītu kāda elementa dizainu un saturu, izmanto:


let elements = document.getElementById("identifikators");
elements.innerHTML = "Jauns saturs"; // Šis samaina HTML elementa saturu.

let elements = document.getElementById("identifikators");
elements.style.color = "green"; // Uzliek tekstam zaļu krāsu

HTML atribūtu iestatīšana

Iedomāsimies, ka atlasītais elements ir kā objekts un atribūti ir tā īpašības

innerHTML ir elementa attēlojamais teksts

let rindkopa = document.getElementById("rindkopa");
rindkopa.innerHTML = "Es esmu rindkopa!";

Apskatīsim piemēru, kā klikšķis uz pogas maina tās tekstu

<button id="poga" onclick="mainaTekstu()">Spied šeit!</button>
function mainaTekstu() {
    let poga = document.getElementById("poga");
    poga.innerHTML = "Hey!";
}

Izmēģini darbībā!

Lai paslēptu elementu, tam iestata atribūtu hidden = true

Ar disabled = true elementu padara neaktīvu, piemēram, neaktīva poga vairs nereaģēs uz klikšķiem

Atribūtus width un height pielieto attēliem un div blokiem

Funkcijas

Funkciju veidi pēc to darbības veidiem

Javascript programmēšanas valodā ir iespējams definēt funcijas, lai universālu kodu izmantotu atkārtoti.

Funkcijas var veikt divu veidu darbības.

  1. Veikt darbību un neko neatgriezt atpakaļ, piemēram, nomaina lapai fonu.
  2. Veikt darbību un atgriezt kādu vērtībum,piemēram, aprēķināt skaitli, tad izmanto vārdu return.

Funkciju lietojums

Funkcijas sāk rakstīt ar vārdu function, tad seko funkcijas nosaukums un iekavās tās parametri.

Svarīgi! Nosaucot funkcijas, nedrīkst lietot: garumzīmes, mīkstinājuma zīmes, atstarpes. Funkcijas ir reģistrjūtīgas(lielie un mazie burti ir svarīgi).

function nosaukums( MAINĪGAIS, MAINĪGAIS, MAINĪGAIS utt.){

  // DARBĪBA

}

Ja funkcijas darbības rezultātā ir jāatgriež vērtība, tad lieto return.

function ( MAINĪGAIS, MAINĪGAIS, MAINĪGAIS utt.){

    return vērtība;

}

Apskatīsim funkcijas piemēru. Funkcijai saskaiti tiek padoti līdzi divi parametri kā funkcijas argumenti, kuri jāsaskaita un jāatgriež atpakaļ to summa. Funckijas argumenti nosaukti kā a un b.


function saskaiti(a,b){
  return a + b;
}

saskaiti(1,2); // Tiek izsaukta funkcija

Ar rindas saskaiti(1,2); palīdzību, tiek izsaukta funkcija saskaiti un tās argumentos līdzi iedoti skaitļi 1 un 2. Tā kā rezultāts netiek ielādēts vai izdrukāts lapā, tad rezultāts nav vizuāli redzams.

Lai iegūtu redzamu rezultātu, piesaistīsim funkcijas rezultātam mainīgo.


function saskaiti(a,b){
  return a + b;
}

var rezultaats = saskaiti(1,2); // Tiek izsaukta funkcija

console.log(rezultaats);

Mainīgajā rezultaats tiek ielādēts funkcijas saskaiti(1,2) izpildes iznākums.

Otrs piemērs ir veikt darbību funkcijā un uzreiz izvadīt tās rezultātu. Funkcijai izvadi_konsolee ir pievienots parametrs vards. Funkcijas iekšienē uzreiz tiek veikta darbība. Mainīgais, kurš ir fukcijas parametrs, tiek sasaistīts ar statisku tekstu (ir iedotais funkcijas parametrs.) un izvadīts konsolē. Šādā gadījumā nav vajadzīgs mainīgais, kuram piesaista funkcijas iznākumu.


function izvadi_konsolee(vards){
  console.log(vards+" ir iedotais funkcijas parametrs.");
}

izvadi_konsolee("Tests"); // Izvade: Tests ir iedotais funkcijas parametrs.

izvadi_konsolee(1234); // Izvade: 1234 ir iedotais funkcijas parametrs.


AJAX

AJAX jeb Asynchronous JavaScript and XML ir veids kā mājaslapā iegūt informāciju lapu nepārlādējot tādējādi ietaupot servera resursus. AJAX ļauj nomainīt saturu mājaslapas elementā lapu nepārlādējot. Piemēram, nomaina tabulas saturu klientam nospiežot pogu vai meklētājs, kurā lietotājs ieraksta vārda daļu un serveris atgriež atpakaļ visus ierakstus, kuri atbilst šim vaicājumam.

AJAX nav programmēšanas valoda.

AJAX pieprasījumus var veidot izmantojot jQuery bibliotēku vai bez tās.

Pirmais piemērs bez.

let xhttp = new XMLHttpRequest(); // Tiek definēta metode, kura tiks izmantota
  xhttp.onreadystatechange = function() { // Kad metode ir gatava jeb ielādēta tiek izpildīda funkcija
    if (this.readyState == 4 && this.status == 200) { // Ja funckija ir veiksmīga un statusa kods ir 200, kas nozīme OK
      document.getElementById("demo").innerHTML = this.responseText; // Dokumenta elementā `demo` tiek ielādeta atbilde no faila 
    }
  };
  xhttp.open("GET", "ajax_info.txt", true); // Izpilda `GET` pieprasījumu uz failu ajax_info.txt
  xhttp.send();

Otrais piemērs, izmantojot jQuery bibliotēku.

Pirms izmantot šo piemēru, lapā jābūt ielādētai Jquery bibliotēkai. jQueryopen in new window

Ielāde lapas galvenē.


<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>

Pats pieprasījums


$.ajax('https://manaadrese.nav/getdata',   // Pieprasījuma adrese
    {
        success: function (data, status, xhr) {//  Atbilde, ja pieprasījums ir veiksmīgs
            $('p').append(data); // Atrodam lapā paragrāfu un pievienojam iegūtos datus
         }
    });

Sīkdatnes

Sīkdatnes (cookies) ļauj datorā saglabāt mazas datu vienības par mājas lapas apmeklētāju.

Var teikt, ka sīkdatne ir mazs fails pārlūkprogrammas kešatmiņā, kas satur parametrus un to vērtības.

Apskatīsim piemēru...

document.cookie = "lietotajs=Andris";

Piemērā redzams, kā sīkdatnē iestata lapas apmeklētāja vārdu.

Noklusēti sīkdatnes tiek dzēstas, aizverot pārlūkprogrammu, bet iespējams definēt arī sīkdatnes derīguma termiņu.

document.cookie = "lietotajs=Andris; expires=Wed, 10 Nov 2021 12:00:00 UTC; path=/;";

Parametrs path norāda noklusēto ceļu uz mājas lapas direktoriju.

Lai dzēstu sīkdatni, tai iestata atpakaļejošu datumu.

jQuery

jQuery ir Javascript papildus bibliotēka, kuru var izmantot, lai saīsinātu savu kodu, tāpat dažas funkcijas ir lietojamas ar īsāku pierakstu un vieglāk iegūstams rezultāts.

Apskatīsim piemērus.

Javascript valodā atlasām elementu.

Javascript bez jQuery:


let vertiba = document.getElementById("identifikators");

Javascript izmantojot jQuery:


let vertiba = $("$identifikators");

Javascript valodā atlasām elementa vērtību lapā jeb ievades lauciņa vērtību.

Javascript bez jQuery:


let vertiba = document.getElementById("identifikators").value;

Javascript izmantojot jQuery:


let vertiba = $("#identifikators").val();

Praktiski piemēri

Paziņojuma lodziņš

Pārlūkos ir iespējams izveidot paziņojuma lodziņu vēl angļu valodā to sauc par alert lodziņu.

Kods

alert("Paziņojuma saturs");

Ievades lodziņš

prompt() darbojas līdzīgi kā alert(), bet ļauj ievadīt arī, piemēram, vārdu.

Kods

let vards = prompt("Ievadu savu vārdu!");

HTML ievades lauciņa nolasišana

Ar Javascript progr. valodu ir iespējams arī nolasīt ievades lauciņu vērtības. Mēs definēsim teksta ievades lauciņu un paziņojumā izvadīsim tā saturu.

Kods

<label>Ievade: </label><input type="text" id="ievades_lauks">

<button onclick="nolasi();"></button>

Tika definēti 3 elementi lapā. label - elements, kurš kalpo kā skaidrojums ievades lauciņam. <input type="text" id="ievades_lauks"> - tekstuāls ievades lauks, kura type atribūtā ir pateikts, ka ievades lauks ir tekstuāls. id="ievades_lauks" unikāls identifikātors visā lapā.

<button onclick="nolasi();">Nolasi mani!</button> - poga, kura nospiežot palaiž funkciju nolasi()

Tad tiek definēts Javascript kods:

Kods
function nolasi(){
    let ievades_lauks_atlasi = document.getElementById("ievades_lauks"); // Atlasām elementu no mūsu HTML lapas.
    let vertiba = ievades_lauks_atlasi.value; // Paņemam no mūsu elementa tikai un vienīgi tā vērtību
    alert("Ievades lauka vērtība ir: " + vertiba); // Paziņojam lapā ievades lauka vērtību.
}

HTML elementa vērtības nomainīšana

Ar Javascript ir iespējams arī nomainīt elementa saturu lapu nepārlādējot.

Iedomāsimies, ka mums ir pirmā līmeņa virsraksts, kurā ir vārds "Diena", bet mēs vēlamies ar pogas palīdzību nomainīt tā saturu uz "Nakts".

HTML Kods:


<h1 id="mainit_so">Diena</h1>

<button onclick="maini_mani();">Nomainīt saturu</button>

<script>

    function maini_mani(){
        let ievades_lauks_atlasi = document.getElementById("mainit_so"); // Atlasām elementu no mūsu HTML lapas.
        ievades_lauks_atlasi.innerHTML =  "Nakts"; // Iestatām tā HTML saturu uz vārdu "Nakts"
    }
</script>

Iepirkumu saraksts

Uzbūvēsim vienkāršu iepirkšanās sarakstu, ko var papildināt, ievadot pirkumus

Sākumā nepieciešams tukšs saraksts, ievades lauks un poga. To veido ar HTML birkām.

Nospiežot pogu, pirkums no ievades lauka pārcelsies uz sarakstu

Kods

<input id="pirkums">
<button onclick="pievienot()">Pievienot pirkumu!</button>
<ol id="saraksts">
</ol>

<script>

function pievienot() {
    let pirkums = document.getElementById("pirkums").value;
    let rinda = document.createElement("li");
    rinda.innerHTML = pirkums;
    let saraksts = document.getElementById("saraksts");
    saraksts.appendChild(rinda);
}
</script>

LocalStorage dati tabulā

Šajā piemērā apskatīsim kā izveidot tabulu, kurā var ievadīt datus un tie saglabājas lokālajā krātuvē jeb Localstorage.
Piemērs tiek skatīts kā preču pievienotājs sarakstam ar iegādes datumu un skaitu.
Pašā sākumā izveidojam HTML ietvaru.

Kods
<h1> Preču uzskaitītājs un saglabātājs</h1>
<label>Nosaukums:</label><input type="text" id="nosaukums"><br>
<label>Iegādes datums:</label><input type="date" id="datums"><br>
<label>Daudzums: </label><input type="number" id="daudzums" min=0><br>
<button onclick="pievienot_jaunu()">Pievienot</button>
<hr>
<table id="tabula" border=1></table>

Javascript daļā tiek definētas 3 funkcijas.
Funckija pievienot_jaunu() nolasa ievades laukus un saglabā tos lokālajā krātuvē.
Funkcija dzest_rindu() izdzēš rindu no tabulas. Tai tiek iedots līdzi parametrs - rindas indekss.
Funkcija uzzimet() uzzīmē tabulu, izmantojot datus no lokālās krātuves.

function pievienot_jaunu(){
  // Šeit sākas visu ievadīto datu nolasīšana
  let nosaukums_ievade = document.getElementById("nosaukums").value;
  let datums_ievade = document.getElementById("datums").value;
  let daudzums_ievade = document.getElementById("daudzums").value;
  // Šeit beidzas visu ievadīto datu nolasīšana
  
  // Pārbaudam, vai visi lauki ir aizpildīti, ja kāds no laukiem nav aizpildīts tiek izmantota alert funkcija
  // Šeit var arī veidot HTML izdruku.
  if(nosaukums_ievade == "" || datums_ievade == "" || daudzums_ievade == ""){
    alert("Visiem laukiem jābūt aizpildītiem!");
  }else{
    // Pārbaudam, vai lokālā krātuve ir tukša jeb vai gadījumā nav situācija, ka localStorage nesatur mums vajadzīgo atslēgu - glabatuve
    if (localStorage.getItem("glabatuve") === null) {
      // Tātad tāda elementa nav. Tātad mums jāizveido jauns masīvs un jāsaglabā to lokālajā krātuvē
      let jauns_masivs = []; // Te izveidojam jaunu tukšu masīvu
      // Pievienojam masīvam objektu,kuram ir 3 atslēgas - nosaukums, datums, daudzums
      // Atslēgu vērtības nāk no ievades laukiem
      jauns_masivs.push({
        nosaukums:nosaukums_ievade,
        datums:datums_ievade,
        daudzums:daudzums_ievade
      });
      // Uzstādam lokālajā krātuvē šo masīvu
      // JSON.stringify pārveido masīvu par JSON formātu, lai to varētu saglabāt lokālajā krātuvē un nolasīt.
      localStorage.setItem("glabatuve",JSON.stringify(jauns_masivs));
     }else{
      // LocalStorage satur mums vajadzīgo atslēgu - glabatuve
      // Iegūst to un pārveido par masīvu
      // Tā kā tas ir JSON formātā, tad to pārveido par masīvu ar JSON.parse
      let jau_ir_masivs = JSON.parse(localStorage.getItem("glabatuve"));
      // Pievienojam jau esošajam masīvam jaunu objektu ar ievadītajiem datiem
      jau_ir_masivs.push({
        nosaukums:nosaukums_ievade, 
        datums:datums_ievade,
        daudzums:daudzums_ievade
      });
      // Atjaunojam lokālo krātuvi ar jaunajiem datiem
      localStorage.setItem("glabatuve",JSON.stringify(jau_ir_masivs));
    }
  }
  // Izsaucam funkciju, kura uzzīmē HTML tabulu
  uzzimet();
}
function dzest_rindu(index){
  // Iegūstam masīvu no lokālās krātuves
  // Pārveidojam to par masīvu ar JSON.parse funkciju
  let jau_ir_masivs = JSON.parse(localStorage.getItem("glabatuve"));
  // Izdzēšam rindu ar noteikto indeksu
  // Izmantojam splice funkciju, kura izdzēš rindu no masīva.
  jau_ir_masivs.splice(index, 1);
  // Atjaunojam lokālo krātuvi ar jaunajiem datiem
  localStorage.setItem("glabatuve",JSON.stringify(jau_ir_masivs));
  // Uzzīmējam tabulu ar jaunajiem datiem
  uzzimet();
}
function uzzimet(){
  // Šis ir funkcijas uzdevums - uzzīmēt tabulu
  // Pārbaudam, vai lokālā krātuve satur kaut ko
  // Mūsu gadījumā, meklējam atslēgu glabatuve
  if (localStorage.getItem("glabatuve") !== null) {
    // Atrodam tabulas elementu HTML dokumentā
    let tabula = document.getElementById("tabula");
    // Uzstādam tabulas sākumu
    tabula.innerHTML = "<tr><th>Nosaukums</th><th>Datums</th><th>Daudzums</th><th>Dzēst</th></tr>";
    // Iegūstam masīvu no lokālās krātuves, pārveidojam to par masīvu ar JSON.parse
    let iegutais_masivs = JSON.parse(localStorage.getItem("glabatuve"));
    // Pārbaudam, vai masīvs ir tukšs
    if(iegutais_masivs.length == 0){
      // Ja masīvs ir tukšs, tad izvadam paziņojumu, ka dati nav
      tabula.innerHTML += "<tr><td colspan=4>Datu nav!</td></tr>";
    }else{
      // Ja masīvs nav tukšs, tad uzzīmējam tabulu
      // Šis ir indekss, lai zinātu, kura rinda tiek izdzēsta, ja tiek spiesta dzēšanas poga
      let indekss = 0;  
      // Katrai rindai no masīva pievienojam jaunu rindu tabulā
      // Mainīga rinda satur masīva elementu
      for(let rinda of iegutais_masivs){
        // Izveidojam tukšu mainīgo, kurā konstruēsim rindu
        let html_rinda = "";
        // Konstruējam rindu
        html_rinda += "<tr>";
            // Pievienojam katru rindas kolonu, iegūstot datus no masīva elementa
            html_rinda += "<td>"+rinda.nosaukums+"</td>";
            html_rinda += "<td>"+rinda.datums+"</td>";
            html_rinda += "<td>"+rinda.daudzums+"</td>";
            // Pievienojam dzēšanas pogu, kurai tiek padots indekss
            html_rinda += "<td><button onclick='dzest_rindu("+indekss+")'>Dzēst šo</button>";
        html_rinda += "</tr>";
        // Pievienojam konstruēto rindu tabulai
        tabula.innerHTML += html_rinda;
        //  Palielinam indeksu, lai zinātu, kura rinda tiek izdzēsta
        indekss++;
      }  
    }
  }
}
uzzimet();

Beigu iznākums, ja tiek aizpildīta tabula ar datiem.

tabula

Brīdinājums

Pogu krāsas un dizains var atšķirties atkarībā no pārlūkprogrammas un tās versijas.

Papildus resursi