CodeGym /Kurslar /Frontend SELF AZ /DOM üzrə Naviqasiya

DOM üzrə Naviqasiya

Frontend SELF AZ
Səviyyə , Dərs
Mövcuddur

2.1 Elementlərə giriş metodları

DOM (Document Object Model) üzrə naviqasiya veb sənədlərlə işləyərkən vacib bir vəzifədir. JavaScript sənədin elementlərini tapmaq və onlara daxil olmaq üçün bir çox metodlar təqdim edir. Bu metodlar, tərtibatçılara lazım olan elementləri asanlıqla tapmağa və onlarla işləməyə imkan yaradır.

1. getElementById() metodu

getElementById() metodu, göstərilən id atributuna malik element qaytarır. Bu, ən sadə və tez-tez istifadə olunan metodlardan biridir.

Nümunə:

HTML
    
      <!DOCTYPE html>
      <html>
        <head>
          <title>Sənəd</title>
        </head>
        <body>
          <div id="content">Bu mətn tərkibidir</div>

          <script>
            const contentDiv = document.getElementById('content');
            console.log(contentDiv.textContent); // Çap edəcək: Bu mətn tərkibidir
          </script>
        </body>
      </html>
    
  

2. getElementsByClassName() metodu

getElementsByClassName() metodu, göstərilən sinifə malik bütün elementlərin kolleksiyasını qaytarır. Kolleksiya "canlıdır", yəni DOM dəyişdirildikdə avtomatik olaraq yenilənir.

Nümunə:

HTML
    
      <!DOCTYPE html>
      <html>
        <head>
          <title>Sənəd</title>
        </head>
        <body>
          <p class="text">Abzas 1</p>
          <p class="text">Abzas 2</p>
          <p class="text">Abzas 3</p>

          <script>
            const paragraphs = document.getElementsByClassName('text');
            console.log(paragraphs.length); // Çap edəcək: 3
          </script>
        </body>
      </html>
    
  

3. getElementsByTagName() metodu

getElementsByTagName() metodu göstərilən teqə malik bütün elementlərin kolleksiyasını qaytarır. Bu kolleksiya da "canlıdır".

Nümunə:

HTML
    
      <!DOCTYPE html>
      <html>
        <head>
          <title>Sənəd</title>
        </head>
        <body>
          <p>Abzas 1</p>
          <p>Abzas 2</p>
          <p>Abzas 3</p>

          <script>
            const paragraphs = document.getElementsByTagName('p');
            console.log(paragraphs.length); // Çap edəcək: 3
          </script>
        </body>
      </html>
    
  

4. querySelector() metodu

querySelector() metodu, göstərilən CSS selektoruna uyğun ilk elementi qaytarır. Bu, elementlərin axtarışı üçün çox güclü və çevik bir metoddur.

Nümunə:

HTML
    
      <!DOCTYPE html>
      <html>
      <head>
        <title>Sənəd</title>
      </head>
        <body>
          <div class="container">
            <p>Abzas 1</p>
            <p class="highlight">Abzas 2</p>
            <p>Abzas 3</p>
          </div>

          <script>
            const highlightedParagraph = document.querySelector('.highlight');
            console.log(highlightedParagraph.textContent); // Çap edəcək: Abzas 2
          </script>
        </body>
      </html>
    
  

5. querySelectorAll() metodu

querySelectorAll() metodu, göstərilən CSS selektoruna uyğun bütün elementlərin statik (dəyişməyən) kolleksiyasını qaytarır.

Nümunə:

HTML
    
      <!DOCTYPE html>
      <html>
        <head>
          <title>Sənəd</title>
        </head>
        <body>
          <div class="container">
            <p>Abzas 1</p>
            <p class="highlight">Abzas 2</p>
            <p>Abzas 3</p>
          </div>

          <script>
            const paragraphs = document.querySelectorAll('.container p');
            console.log(paragraphs.length); // Çap edəcək: 3
          </script>
        </body>
      </html>
    
  

2.2 Uzaqlaşdırıcı üzrə Naviqasiya

DOM eyni zamanda cari elementə nisbətdə uzaqlaşdırıcılar üzrə naviqasiya etmək üçün metodlar təqdim edir.

1. parentNode Xassəsi

parentNode xassəsi cari uzaqlaşdırıcının ana uzaqlaşdırıcısını qaytarır.

Nümunə:

HTML
    
      <!DOCTYPE html>
      <html>
        <head>
          <title>Document</title>
        </head>
        <body>
          <div id="container">
            <p>Paraqraf</p>
          </div>

          <script>
            const paragraph = document.querySelector('p');
            const parent = paragraph.parentNode;
            console.log(parent.id); // Çıxış: container
          </script>
        </body>
      </html>
    
  

2. childNodes Xassəsi

childNodes xassəsi cari uzaqlaşdırıcının bütün alt uzaqlaşdırıcılarının kolleksiyasını qaytarır, mətn uzaqlaştırıcıları da daxil olmaqla.

Nümunə:

HTML
    
      <!DOCTYPE html>
      <html>
        <head>
          <title>Document</title>
        </head>
        <body>
          <ul id="list">
            <li>Item 1</li>
            <li>Item 2</li>
            <li>Item 3</li>
          </ul>

          <script>
            const list = document.getElementById('list');
            const children = list.childNodes;
            console.log(children.length); // Bütün alt uzaqlaşdırıcıların sayını göstərəcək, mətnləri də daxil olmaqla.
          </script>
        </body>
      </html>
    
  

Yəqin ki, nəticənin niyə 7 olduğunu hələ düşünürsünüz?

Yuxarıda qeyd edildiyi kimi, childNodes xassəsi cari uzaqlaşdırıcının bütün alt uzaqlaşdırıcılarının, mətn uzaqlaşdırıcıları da daxil olmaqla, kolleksiyasını qaytarır (boşluqlar, simvollar, yeni sətirlər və s.). HTML işarələməsində <li> elementləri arasında boşluqlar və yeni sətirlər var ki, bunlar da ayrıca uzaqlaşdırıcılar kimi sayılır.

Yuxarıdakı nümunədə <ul> tagı ilə ilk <li> arasında yeni xətt (və bəlkə də boşluq) var — bu da bir mətn uzaqlaşdırıcısı hesab olunur. Eyni vəziyyət bütün <li> arasındadır və sonuncudan sonra da mövcuddur. Buna görə də, üç səhifə elementi yerinə childNodes həmin mətn uzaqlaşdırıcılarını da daxil edir və nəticə olaraq ümumi sayı 7 edir.

Yalnız elementləri almaq üçün (mətn uzaqlaşdırıcılarını nəzərə almadan), yalnız alt elementləri qaytaran children xassəsindən istifadə etmək olar:

HTML
    
      <!DOCTYPE html>
      <html>
        <head>
          <title>Document</title>
        </head>
        <body>
          <ul id="list">
            <li>Item 1</li>
            <li>Item 2</li>
            <li>Item 3</li>
          </ul>

          <script>
            const list = document.getElementById('list');
            const children = list.children;
            console.log(children.length); // 3
          </script>
        </body>
      </html>
    
  

3. firstChild və lastChild Xassələri

firstChildlastChild xassələri müvafiq olaraq ilk və son alt uzaqlaşdırıcını qaytarır.

Nümunə:

HTML
    
      <!DOCTYPE html>
      <html>
        <head>
          <title>Document</title>
        </head>
        <body>
          <ul id="list">
            <li>Item 1</li>
            <li>Item 2</li>
            <li>Item 3</li>
          </ul>

          <script>
            const list = document.getElementById('list');
            const first = list.firstChild;
            const last = list.lastChild;
            console.log(first.textContent);
            console.log(last.textContent);
          </script>
        </body>
      </html>
    
  

Ola bilər ki, konsolda heç bir şey yoxmuş kimi hiss etmisiniz. Lakin belə deyil. Əslində son alt uzaqlaşdırıcı "Item 1" və yeni xəttdə olan "Item 3" çıxdı. Əgər bu səhvə düşmüsünüzsə, yenidən 2-ci bənd: childNodes Xassəsi hissəsini nəzərdən keçirin.

4. nextSibling və previousSibling Xassələri

nextSiblingpreviousSibling xassələri eyni səviyyədə olan növbəti və əvvəlki uzaqlaşdırıcıları qaytarır.

Nümunə:

HTML
    
      <!DOCTYPE html>
      <html>
        <head>
          <title>Document</title>
        </head>
        <body>
          <ul id="list">
            <li>Item 1</li>
            <li>Item 2</li>
            <li>Item 3</li>
          </ul>

          <script>
            const secondItem = document.querySelector('li:nth-child(2)');
            const next = secondItem.nextSibling;
            const prev = secondItem.previousSibling;
            console.log(next.textContent); // Çıxış: Item 3
            console.log(prev.textContent); // Çıxış: Item 1 (mətn uzaqlaşdırıcılarını keçərsə)
          </script>
        </body>
      </html>
    
  

2.3 Element düyünləri ilə naviqasiya

5. nextElementSibling və previousElementSibling xüsusiyyətləri

Bu xüsusiyyətlər növbəti və əvvəlki element düyünləri (mətn və şərhləri keçərək) qaytarır.

Nümunə:

HTML
    
      <!DOCTYPE html>
      <html>
        <head>
          <title>Document</title>
        </head>
        <body>
          <ul id="list">
            <li>Element 1</li>
            <li>Element 2</li>
            <li>Element 3</li>
          </ul>

          <script>
            const secondItem = document.querySelector('li:nth-child(2)');
            const next = secondItem.nextElementSibling;
            const prev = secondItem.previousElementSibling;
            console.log(next.textContent); // Çap edəcək: Element 3
            console.log(prev.textContent); // Çap edəcək: Element 1
          </script>
        </body>
      </html>
    
  

6. firstElementChild və lastElementChild xüsusiyyətləri

Bu xüsusiyyətlər ilk və son uşaq element düyünlərini (mətn və şərhləri keçərək) qaytarır.

Nümunə:

HTML
    
      <!DOCTYPE html>
      <html>
        <head>
          <title>Document</title>
        </head>
        <body>
          <ul id="list">
            <li>Element 1</li>
            <li>Element 2</li>
            <li>Element 3</li>
          </ul>

          <script>
            const list = document.getElementById('list');
            const first = list.firstElementChild;
            const last = list.lastElementChild;
            console.log(first.textContent); // Çap edəcək: Element 1
            console.log(last.textContent);  // Çap edəcək: Element 3
          </script>
        </body>
      </html>
    
  
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION