javaScript DOM'da GEZİNME

HTML DOM ile, düğüm ağacındaki tüm düğümlere JavaScript ile erişilebilir. Yeni düğümler oluşturulabilir ve tüm düğümler değiştirilebilir veya silinebilir.

Düğüm İlişkileri


Düğüm ağacındaki düğümler birbirleriyle hiyerarşik bir ilişki içeriyor.

İlişkileri tanımlamak için ebeveyn, çocuk ve kardeş terimleri kullanılır.

JavaScript ile düğümler arasında gezinmek için aşağıdaki düğüm özelliklerini kullanabilirsiniz:


DOM öğelerle ve içerikleriyle her şeyi yapmaya izin verir, ancak önce ilgili DOM nesnesine erişip bir değişkene atamamız gerekir ve daha sonra bunu değiştirebiliriz.

DOM üzerindeki tüm işlemler document nesneyle başlar. Oradan herhangi bir düğüme erişebiliriz.

DOM düğümleri arasında gezinmeyi sağlayan bağlantıların örnek bir şeması.


JavaScript'deki düğümleri anlamak için bir örnek verelim.

ÖRNEK:


<p>Bu jsdom'dur </p>

Yukarıdaki örnekte iki düğüm, "P" ve bir metin düğümü vardır. Her iki düğümün birleşimi bir paragrafı temsil eder. Daha iyi anlamak için başka bir kod örneği verelim.


<p>Bu <b>jsdom</b> </p>

Yukarıdaki kod parçası, bir üst düğüm "P" ve iki alt düğüm (metin ve B düğümü) oluşturdu. "B" düğümü ayrıca bir alt düğüm (metin) içerir.

Aşağıdaki şekil, bir önceki kod parçasının elemanlarının ağaç biçiminde nasıl temsil edilebileceğini göstermektedir.


parentNode Özellik :


ParentNode özelliği, belirtilen düğümün üst düğümünü bir Düğüm nesnesi olarak döndürür.

Not : HTML'de doküman HTML öğesinin üst düğümüdür, HEAD ve BODY, HTML öğesinin alt düğümleridir.

Sözdizimi :


node.parentNode

ÖRNEK :

HTML :


<div >

  <p id="test">javascript Dersi</p>
  
</div>

javaScript :


  var x = document.querySelector('#test');
  
  var ad = x.parentNode.nodeName;
  
  alert(ad); //ÇIKTI : DIV

childNodes Özellik :


ChildNodes özelliği, bir düğümün alt düğümlerinin bir koleksiyonunu bir NodeList nesnesi olarak döndürür. Koleksiyondaki düğümler, kaynak kod'da göründükleri gibi sıralanır ve dizin numaraları ile erişilebilir. Endeks 0'dan başlar.

Not : Elemanlardaki boşluk metin olarak kabul edilir ve metin düğüm olarak kabul edilir. Yorumlar da düğüm olarak kabul edilir.

İpucu : Alt düğümlerin sayısını belirlemek için NodeList nesnesinin length özelliğini kullanabilirsiniz , ardından tüm alt düğümlerde dolaşır ve istediğiniz bilgiyi elde edebilirsiniz.

İpucu : Bir düğümün öğe düğümlerinin (metin ve yorum düğümleri hariç) bir koleksiyonunu döndürmek için, children özelliğini kullanın.

İpucu : element.childNodes[0], firstChild özelliği ile aynı sonucu üretecektir.

Sözdizimi :


element.childNodes

ÖRNEK :

HTML :


 <p id="test">javascript Dersi</p>

javaScript :


var x= document.querySelector("#test").childNodes[0];

alert(x.textContent); //ÇIKTI: javascript dersi

javaScript :


var x= document.querySelector("#test").childNodes.length;

alert(x); //ÇIKTI :1

firstChild yöntemi


FirstChild özelliği, belirtilen düğümün ilk alt düğümünü bir Düğüm nesnesi olarak döndürür.

FirstElementChild , ilk alt düğümü bir öğe düğümü olarak döndürürken, firstChild ilk öğe düğümü, metin düğümü veya yorum düğümü olarak ilk alt düğümü döndürdüğü , firstElementChild ise metin ve yorum düğümleri yok sayar bu iki elementin asındaki farktır.

Not : Elemanlardaki boşluk metin olarak kabul edilir ve metin düğümü olarak kabul edilir.

İpucu: Belirtilen bir düğümün herhangi bir alt düğümünü döndürmek için element.childNodes özelliğini kullanın. ChildNodes[0], firstChild ile aynı sonuca neden olacaktır.

Sözdizimi :


node.firstChild

ÖRNEK :

HTML :


 <p id="test">javascript Dersi</p>

javaScript :


var x= document.querySelector("#test").firstChild.nodeName;

alert(x);//ÇIKTI:#text

Yukarıdaki örnekte ilk düğüm metindir, bunuda "#text" diye okudu.

lastChild Özellik


LastChild özelliği, belirtilen düğümün son alt düğümünü bir Düğüm nesnesi olarak döndürür.

LastElementChild, son öğe düğümü olarak son çocuk düğümünü döndürürken (metni yok sayar) lastChild, son nesne düğümünü, bir metin düğümünü veya bir yorum düğümünü döndürdüğünü görürüz. Bu özellikler iki element arasındaki farktır.

Not : Elemanlardaki boşluk metin olarak kabul edilir ve metin düğüm olarak kabul edilir.

ÖRNEK :

HTML :


 <p id="test">javascript Dersi</p>

javaScript :


var x= document.querySelector("#test").lastChild.nodeName;

alert(x);//ÇIKTI:#text

Yukarıdaki örnekte son düğüm boşluktur bunuda "#text" diye okudu.

nextSibling özelliği


NextSibling özelliği, aynı ağaç düzeyinde belirtilen düğümün hemen altındaki düğümü döndürür. Döndürülen düğüm, bir Node nesnesi olarak döndür.

NextElementSibling sonraki kardeş düğümünü bir öğe düğümü olarak döndürürken (metin ve yorum düğümlerini yoksayar) nextSibling öğesinin düğümünü, metin düğümü veya yorum düğümü olarak bir sonraki kardeş düğümünü döndürdüğünü, bu özellikler iki element arasındaki farktır.

Sözdizimi :


node.nextSibling

ÖRNEK :

Liste elemanın sonraki kardeşi içeriğini alın.

HTML :


<ul><li id="test1">javascript (first li)</li><li id="test2">php (second li)</li></ul>

javaScript :


var x=document.querySelector("#test1").nextSibling.innerHTML; 

alert(x); // ÇIKTI :php (second li)

previousSibling özelliği


PreviousSibling özelliği, belirtilen düğümün önceki düğümünü, aynı ağaç düzeyinde döndürür. Döndürülen düğüm, bir Node nesnesi olarak döndürülür.

PreviousElementSibling önceki kardeş düğümünü bir öğe düğümü olarak döndürürken (metin ve yorum düğümlerini yoksayar) previousSibling öğesinin düğüm, metin düğümü veya yorum düğümü olarak önceki kardeş düğümünü döndürdüğü bu özellikler iki element arasındaki farktır.

Sözdizimi :


node.previousSibling

ÖRNEK :

Bir liste öğesinin önceki kardeşinin HTML içeriğini alın.

HTML :


<ul><li id="test1">javascript (first li)</li><li id="test2">php (second li)</li></ul>

javaScript :


var x= document.querySelector("#test2").previousSibling.innerHTML; 

alert(x); // ÇIKTI :javascript (first li)

Öğe amaçlı gezinme


Yukarıda listelenen gezinti özellikleri, tüm düğümleri ifade eder . Örneğin, childNodes metin düğümlerini, öğe düğümlerini ve varsa yorum düğümlerini bile görebiliriz.

Ancak birçok görev için metin veya yorum düğümleri istemiyoruz. Etiketleri temsil eden ve sayfanın yapısını oluşturan öğe düğümlerini değiştirmek istiyoruz.

Bu yüzden yalnızca öğe düğümlerini dikkate alan daha fazla gezinme bağlantısı görelim.

Yukarıdaki verilen javascript kod adları ile aynı sadece kod isminin ortasına "Element" kelimesi ekliyoruz.

Şahin Altay 13/10/2019

Gayet başarılı bir anlatım tarzı ve içerik olmuş başarılar.

Ömer Ali TORTUM 04/11/2019


<p id="test">               
<b> metin1 </b> 
<i> Metin2 </i> 
Metin3  
<i> Metin4 </i>  
<b> Metin5 </b>
</p> 

Yukarıdaki kod içinden sadece Metin3'ü nasıl çekebiliriz? Metin olduğu için Child ya da Node opsiyonu görmüyor. Lütfen yardım.

yönetici 06/11/2019


var x= document.querySelector("#test").childNodes[4];

alert(x.textContent);

utku can 31/08/2021

Teşekkürler, çok güzel açıklamışsınız, sizin sayenizde birçok konuyu öğreniyoruz.
Lütfen konu haricinde soru sormayın cevaplanmayacaktır. Yorumunuz onaylandıktan sonra yayınlanacaktır. Lütfen Yukarıda ki mesajları okuyun tekrar aynı soruları sormayın.

3094

KATEGORİ
  • HTML
  • CSS
  • PHP
  • JQUERY
  • PHOTOSHOP
  • JavaScript
  • Web Dünyası
  • Linux
  • MİTHRİL FRAMEWORK
  • Laravel
  • Git
  • React
POPÜLER MAKALE
  • HTML LİNK(Bağlantı)EKLEME - LİNK VERME
  • HTML YAZI VE RESİM ORTALAMA
  • HTML RESME LİNK VERME
  • HTML FORM OLUŞTURMA
  • CSS YATAY MENÜ YAPIMI
  • HTML RESİM EKLEME
  • CSS (BOYUT) GENİŞLİK VE YÜKSEKLİK (Width-Height)
  • HTML DİV ve SPAN NEDİR?
  • HTML ARKAPLANA MÜZİK EKLEME
  • KALİTE KAYBETMEDEN RESİMLERİ BÜYÜTME
ETİKET
WEBCEBİR © 2013 Tüm hakları saklıdır.