JavaScript Dilinde HTML DOM Kullanımı: Detaylı Rehber
Web sayfaları, tarayıcılar tarafından yüklenirken bir Belge Nesne Modeli (DOM) olarak yapılandırılır. Bu model, HTML belgesinin mantıksal yapısını temsil eder ve JavaScript'in web sayfasının içeriğine, yapısına ve stiline dinamik olarak erişmesini ve bunları değiştirmesini sağlayan bir API (Uygulama Programlama Arayüzü) sunar. Bu makale, JavaScript kullanarak HTML DOM ile nasıl etkileşim kuracağınızı, elementleri nasıl seçeceğinizi, içeriklerini ve stillerini nasıl değiştireceğinizi ve olayları nasıl yöneteceğinizi adım adım açıklayacaktır.
Temel Sözdizimi
JavaScript'in DOM ile etkileşim kurmasının temelinde, belgedeki HTML elementlerini seçmek ve ardından bu elementlerin özelliklerine veya metotlarına erişmek yatar. Aşağıdaki sözdizimleri, en yaygın DOM seçim ve manipülasyon yöntemlerini özetlemektedir:
// Element seçimi
document.getElementById("elementId");
document.getElementsByClassName("className");
document.getElementsByTagName("tagName");
document.querySelector("cssSelector");
document.querySelectorAll("cssSelector");
// Element özellikleri ve metotları
element.innerHTML;
element.textContent;
element.style.propertyName;
element.setAttribute("attributeName", "value");
element.classList.add("className");
element.addEventListener("eventName", functionHandler);
document.createElement("tagName");
parentElement.appendChild(childElement);
parentElement.removeChild(childElement);Detaylı Açıklama
documentNesnesi: DOM'a erişimin ana giriş noktasıdır. Tüm HTML belgesini temsil eder.Element Seçim Metotları:
document.getElementById("elementId"): Belirtilenidniteliğine sahip tek bir elementi döndürür.id'ler bir sayfada benzersiz olmalıdır.document.getElementsByClassName("className"): Belirtilen sınıf adına sahip tüm elementleri içeren birHTMLCollectiondöndürür. Canlı bir koleksiyondur, yani DOM'daki değişiklikler koleksiyonu otomatik olarak günceller.document.getElementsByTagName("tagName"): Belirtilen etiket adına sahip tüm elementleri içeren birHTMLCollectiondöndürür.document.querySelector("cssSelector"): Belirtilen CSS seçici ile eşleşen belgedeki ilk elementi döndürür.document.querySelectorAll("cssSelector"): Belirtilen CSS seçici ile eşleşen tüm elementleri içeren birNodeListdöndürür. Statik bir koleksiyondur.
Element Özellikleri ve Metotları:
element.innerHTML: Bir elementin HTML içeriğini (alt elementler dahil) alır veya ayarlar. HTML etiketlerini yorumlar.element.textContent: Bir elementin ve tüm alt elementlerinin metin içeriğini alır veya ayarlar. HTML etiketlerini metin olarak ele alır.element.style.propertyName: Bir elementin CSS stil özelliklerine erişim sağlar. Örneğin,element.style.backgroundColor = "red";.element.setAttribute("attributeName", "value"): Bir elementin belirtilen niteliğini ayarlar veya günceller. Örneğin,element.setAttribute("href", "https://example.com");.element.classList: Bir elementin CSS sınıflarını yönetmek için bir dizi metot (add,remove,toggle,contains) sunar.element.addEventListener("eventName", functionHandler): Bir elemente olay dinleyicisi ekler. Örneğin, bir butona tıklama olayını dinlemek için"click"kullanılır.document.createElement("tagName"): Belirtilen etiket adıyla yeni bir HTML elementi oluşturur.parentElement.appendChild(childElement): Belirtilen bir çocuğu, belirtilen ana elementin son çocuğu olarak ekler.parentElement.removeChild(childElement): Belirtilen ana elementten belirtilen çocuğu kaldırır.
Pratik Kullanım Örnekleri
Aşağıdaki örnekler, JavaScript'in DOM ile nasıl etkileşim kurduğunu göstermektedir.
Örnek 1: Bir HTML Elementinin İçeriğini Güncelleme
Bu örnekte, bir paragraf elementinin metin içeriği JavaScript ile değiştirilmektedir.
Merhaba Dünya!
Örnek 2: Bir Elementin Stilini Değiştirme
Bu örnek, bir  Örnek 3: Yeni Bir Element Oluşturma ve Ekleme Bu örnek, dinamik olarak yeni bir liste öğesi oluşturup mevcut bir listeye ekler. Örnek 4: Bir Olay Dinleyicisi Ekleme Bu örnek, bir butona tıklanma olayını dinler ve tıklandığında bir paragrafın içeriğini günceller. Henüz tıklanmadı. Betik Yerleşimi ve Yükleme: JavaScript kodunuzun HTML DOM elementlerine erişmeye çalışmadan önce, bu elementlerin tarayıcı tarafından yüklenmiş ve DOM'a eklenmiş olması gerekir. Bu genellikle  Performans İpuçları: Kapsamlı DOM manipülasyonları performans maliyetli olabilir. Büyük değişiklikler yaparken, elementleri DOM'dan kaldırın, değişiklikleri yapın ve sonra tekrar ekleyin. Ayrıca, birden fazla stil değişikliği için  Güvenlik (XSS): Kullanıcı girdilerini 
    
Önemli Notlar
    
                     etiketini  etiketinin kapanışından hemen önce yerleştirerek veya defer/async niteliklerini kullanarak sağlanır. Alternatif olarak, document.addEventListener("DOMContentLoaded", function() { /* kodunuz */ }); kullanarak kodunuzun DOM tamamen yüklendikten sonra çalışmasını sağlayabilirsiniz.id Benzersizliği: document.getElementById() metodu için kullanılan id nitelikleri, HTML belgesi içinde benzersiz olmalıdır. Aynı id'ye sahip birden fazla element bulunması durumunda, metot yalnızca ilk eşleşeni döndürecektir.HTMLCollection ve NodeList: getElementsByClassName ve getElementsByTagName metotları HTMLCollection, querySelectorAll ise NodeList döndürür. Bu koleksiyonlar dizi benzeri nesnelerdir ancak tüm dizi metotlarına (map, filter vb.) doğrudan sahip değildirler. Üzerlerinde döngü kurmak için for...of veya Array.from().forEach() kullanabilirsiniz.element.style.cssText özelliğini kullanabilir veya CSS sınıflarını (classList) manipüle edebilirsiniz.innerHTML ile doğrudan DOM'a eklerken dikkatli olun. Kötü niyetli kullanıcılar, bu yöntemle sitenize Cross-Site Scripting (XSS) saldırıları yapabilirler. Güvenliğiniz için genellikle textContent kullanmak veya girdileri sanitize etmek daha iyidir.null Kontrolü: DOM elementlerini seçerken, bazen elementin sayfada var olmayabileceği durumlar olabilir. Bu tür durumlarda, döndürülen değer null olacaktır. Kodunuzun beklenmedik hatalar vermesini önlemek için element üzerinde işlem yapmadan önce bir null kontrolü yapmak iyi bir pratiktir (örneğin, if (element) { ... }).
                CSS Dilinde Hizalama (Align) Özelliklerinin Kapsamlı Kullanımı
SQL Dilinde LEFT JOIN Kullanımı
            
            2025 © Tüm Hakları Saklıdır.
        
            
Yorum yap
Yorumlar