JavaScript je moćan skriptni jezik koji programerima daje mogućnost izrade dinamičnih, interaktivnih web stranica. Pronalaženje nadređenog elementa određenog elementa česta je operacija pri radu s Document Object Modelom (DOM).
Ovdje ćemo pogledati različite pristupe koji se temelje na JavaScriptu kako bismo to postigli.
Nadređeni element HTML elementa može se pronaći korištenjem atributa parentNode, što je najlakši način. Kada je element isporučen, ovaj atribut vraća roditeljski čvor elementa u DOM stablu. Korištenje ovog atributa ilustrirano je sljedećim primjerom:
const childElement = document.getElementById('child-element'); const parentElement = childElement.parentNode;
Metoda getElementById koristi se u gornjem isječku koda za prvi odabir podređenog elementa prema ID-u. Nakon toga koristimo atribut parentNode za dodjelu nadređenog elementa varijabli parentElement.
Korištenje svojstva parentElement: DOM nudi korisno svojstvo parentElement koje se može koristiti za dobivanje nadređenog elementa HTML elementa uz svojstvo parentNode. Primjena je vrlo slična prethodnoj tehnici:
const childElement = document.getElementById('child-element'); const parentElement = childElement.parentElement;
Uz ilustrativniju i razumljiviju metodu, možemo postići isti ishod korištenjem atributa parentElement.
Korištenje metode closest(): Metoda closest() još je jedan učinkovit alat koji nude suvremeni preglednici.
Pomoću ove tehnike možete odrediti koji je element u stablu CSS selektora izravni predak elementa. Korištenje tehnike nearest() prikazano je u sljedećem primjeru:
const childElement = document.getElementById('child-element'); const parentElement = childElement.closest('.parent-class');
Funkcija nearest() se zatim poziva u gornjem kodu, dajući CSS selektor kao argument, nakon što se metoda getElementById koristi za odabir podređenog elementa. Prvog pretka elementa koji odgovara navedenom odabiru vraća funkcija closest().
U ovom slučaju, element s klasom 'parent-class' koji je najbliži predak elementa djeteta je ono što pokušavamo pronaći.
Korištenje metoda obilaska: Možete obilaziti DOM stablo pomoću jedne od mnogih metoda obilaska koje nudi JavaScript. Metode parentNode, previousSibling, nextSibling, firstChild i lastChild su među njima. Kombinacijom ovih tehnika možete otići do nadređenog elementa određenog elementa. Kao ilustraciju, razmotrite sljedeće
const childElement = document.getElementById('child-element'); const parentElement = childElement.parentNode;
U ovom retku koda prvo koristimo getElementById da odaberemo podređeni element, a zatim koristimo svojstvo parentNode da dobijemo njegov roditeljski element. Ove tehnike obilaženja omogućuju vam navigaciju gore-dolje DOM stablom kako biste locirali traženi nadređeni ili podređeni element.
Korištenje svojstva parentElement za rukovanje događajima: Kada koristite JavaScript rukovatelje događajima, možda će biti potrebno imati pristup nadređenom elementu cilja događaja. Atribut parentElement u rukovatelju događajima može se koristiti, na primjer, ako imate popis gumba i želite poduzeti neku radnju kada se klikne gumb na nadređenom elementu.
Evo ilustracije:
const buttons = document.querySelectorAll('.button'); buttons.forEach((button) => { button.addEventListener('click', function(event) { const parentElement = event.target.parentElement; // Perform actions on the parent element }); });
Korištenjem querySelectorAll odabiremo sve komponente u gornjem primjeru koda koje imaju klasu 'button'. Zatim, svaki gumb ima priložen slušač klika pomoću funkcije forEach.
Koristimo event.target.parentElement za dobivanje pristupa nadređenom elementu unutar rukovatelja događajima. Kao rezultat toga, kada se klikne na gumb, možemo poduzeti akciju na nadređenom elementu.
android.process.acore se stalno zaustavlja
Korištenje svojstva nadređenog elementa s dinamičkim elementima:
Ako radite s dinamički generiranim elementima u svojoj web aplikaciji, možete doći u okolnosti u kojima morate pristupiti nadređenom elementu novoformiranog elementa.
Nakon dodavanja elementa u DOM, u određenim okolnostima možete koristiti svojstvo nadređenog elementa.
Kao ilustraciju, razmotrite sljedeće:
const parentElement = document.getElementById('parent-element'); function createNewElement() { const newElement = document.createElement('div'); // Manipulate the new element parentElement.appendChild(newElement); const newElementParent = newElement.parentElement; // Access the parent element of the newly created element }
U ovom retku koda prvo koristimo getElementById za odabir nadređenog elementa. Zatim, pomoću funkcije appendChild unutar funkcije createNewElement, stvaramo novi element, modificiramo ga prema potrebi i dodajemo nadređenom elementu.
Koristeći svojstvo parentElement, možemo dobiti nadređeni element novog elementa nakon što ga dodamo u DOM.
preimenuj imenik linux
Korištenje svojstva offsetParent:
U nekim okolnostima možda ćete htjeti pronaći element koji je najbliži predak određenog elementa. To možete postići korištenjem svojstva offsetParent. Vraća se najbliži element pretka s položajem koji nije statički, što je zadano pozicioniranje.
Evo ilustracije:
const childElement = document.getElementById('child-element'); const positionedAncestor = childElement.offsetParent;
U gore spomenutom isječku koda, prvo koristimo metodu getElementById za odabir podređenog elementa, a zatim se atribut offsetParent koristi za označavanje najbližeg pozicioniranog elementa pretka varijabli pod nazivom positionedAncestor.
Korištenje svojstva parentNode s različitim vrstama čvorova:
Možete se kretati DOM stablom i doći do roditelja nekoliko vrsta čvorova, kao što su tekstualni čvorovi i čvorovi komentara, uz dolazak do nadređenog elementa HTML elementa.
Možete se lakše kretati DOM stablom pomoću svojstva parentNode, koje radi s različitim vrstama čvorova. Kao ilustraciju, razmotrite sljedeće:
const textNode = document.createTextNode('Hello, World!'); const parentElement = textNode.parentNode;
U ovom primjeru koristimo funkciju createTextNode za stvaranje tekstualnog čvora. Svojstvo parentNode zatim se koristi za dohvaćanje nadređenog elementa. Kada se radi o zamršenim DOM strukturama koje sadrže niz čvorova, ova strategija može biti od pomoći.
Korištenje svojstva parentElement sa Shadow DOM-om:
Možda ćete trebati pristupiti nadređenom elementu unutar granice Shadow DOM-a ako radite sa Shadow DOM-om, web tehnologijom koja omogućuje enkapsulaciju DOM stabala i CSS stilova.
U ovom slučaju također je primjenjivo svojstvo parentElement.
Kao ilustraciju, razmotrite sljedeće:
const shadowRoot = document.getElementById('shadow-root').shadowRoot; const childElement = shadowRoot.getElementById('child-element'); const parentElement = childElement.parentElement;
Atribut shadowRoot elementa hosta koristi se u gornjem kodu za prvo dobivanje korijena sjene. Koristeći funkciju getElementById, potom odabiremo podređeni element unutar korijena sjene na temelju njegovog ID-a.
Koristeći svojstvo parentElement, konačno možemo dohvatiti nadređeni element. To vam omogućuje pristup nadređenom elementu čak i unutar Shadow DOM-a.
Pozicionirani elementi sa svojstvom offsetParent:
Svojstvo offsetParent možete koristiti u kombinaciji sa svojstvima offsetLeft i offsetTop da biste locirali najbliži pozicionirani element pretka određenog elementa ako to izričito morate učiniti.
java strng na int
Evo ilustracije:
const element = document.getElementById('target-element'); let positionedAncestor = element.offsetParent; while (positionedAncestor && getComputedStyle(positionedAncestor).position === 'static') { positionedAncestor = positionedAncestor.offsetParent; }
Koristeći getElementById, prvo biramo ciljni element u ovom retku koda. Nakon toga, offsetParent ciljnog elementa koristi se za inicijalizaciju varijable positionedAncestor.
Sljedeći korak je utvrditi ima li trenutno pozicionirani predak izračunatu poziciju 'statične' korištenjem while petlje.
positionedAncestor ažurira se na offsetParent trenutnog positionedAncestora ako jest.
Ovaj proces se nastavlja sve dok ne lociramo pretka koji je najbliži našoj trenutnoj lokaciji ili dok ne dođemo do vrha DOM stabla.
Možete dodatno poboljšati svoju sposobnost dohvaćanja nadređenog elementa u JavaScriptu pomoću ovih dodatnih strategija i metoda. Ove metode nude odgovore na niz problema, uključujući rukovanje Shadow DOM-om, rad s različitim vrstama čvorova i lociranje najbližeg pretka.
Odaberite tehniku koja ispunjava vaše jedinstvene zahtjeve i poboljšava vaše vještine rukovanja DOM-om.
Ako koristite novije metode ili značajke, ne zaboravite temeljito testirati svoj kod u raznim preglednicima kako biste provjerili kompatibilnost.
Bit ćete opremljeni znanjem i sposobnostima za rad s nadređenim elementima u JavaScriptu i izgradnju dinamičnih i interaktivnih mrežnih iskustava nakon što čvrsto shvatite te koncepte.
Sada imate dodatne metode koje su vam dostupne u JavaScriptu da dođete do nadređenog elementa.
Razumijevanje ovih tehnika poboljšat će vašu sposobnost pravilne izmjene i interakcije s DOM-om, bilo da radite s rukovanjem događajima, dinamičkim elementima ili trebate otkriti najbližeg pozicioniranog pretka.
Uvijek odaberite pristup koji najbolje odgovara vašem jedinstvenom slučaju korištenja, imajući na umu kompatibilnost preglednika i točne potrebe vašeg projekta. Uz ove metode koje su vam na raspolaganju, bit ćete opremljeni vještinama potrebnim za istraživanje i rad s roditeljskim komponentama u JavaScriptu s lakoćom.