Son Dersler
Web Geliştirme: HTML, CSS, JavaScript

JavaScript DOM Manipülasyonu Nedir Canlı Örnekler

16 Mart 2026 8 dk okuma Deniz Karay

JavaScript DOM manipülasyonu, bir web sayfasının HTML yapısını, stilini ve içeriğini JavaScript kodu kullanarak dinamik bir şekilde değiştirme sürecidir. İnternette gezindiğiniz sitelerdeki butonlara tıklandığında açılan menüler, form gönderildiğinde çıkan uyarı mesajları veya sayfa yenilenmeden güncellenen veriler, DOM manipülasyonu sayesinde gerçekleşerek statik sayfaları yaşayan ve kullanıcıyla etkileşime giren dijital platformlara dönüştürür.

🎯 Bu Derste Öğrenecekleriniz
  • DOM kavramının ne olduğunu ve nasıl çalıştığını kavrayacaksınız.
  • HTML elemanlarını farklı yöntemlerle seçmeyi öğreneceksiniz.
  • Sayfa içeriğini ve CSS stillerini JavaScript ile değiştirebileceksiniz.
  • Olay izleyiciler (Event Listeners) ile kullanıcı etkileşimlerini yönetebileceksiniz.
📌 Bu Konuda Bilmeniz Gerekenler
  • DOM, Document Object Model (Belge Nesne Modeli) kelimelerinin kısaltmasıdır.
  • JavaScript, HTML belgesini bir “ağaç yapısı” (tree structure) olarak görür.
  • Her HTML etiketi, DOM ağacında birer “düğüm” (node) olarak temsil edilir.
  • DOM manipülasyonu, modern web uygulamalarının (React, Vue vb.) temelini oluşturur.

DOM Nedir ve Neden Önemlidir?

Document Object Model (DOM), tarayıcının bir web sayfasını yüklediğinde oluşturduğu programlama arayüzüdür. Tarayıcı, HTML kodlarını okur ve bunları hiyerarşik bir yapıya dönüştürür. Bu yapı sayesinde JavaScript, HTML dokümanındaki her bir parçaya erişebilir, onları silebilir veya yenilerini ekleyebilir. DOM, aslında HTML ile JavaScript arasındaki bir köprü görevi görür.

DOM’un önemini anlamak için bir evin projesini hayal edin. HTML bu evin temel planıdır, CSS ise duvarların rengi ve mobilyaların düzenidir. JavaScript ise bu evde yaşayan ve istediği zaman duvarın rengini değiştirebilen veya yeni bir oda ekleyebilen bir mimar gibidir. Eğer DOM olmasaydı, bir web sitesindeki en ufak bir değişiklik için bile tüm sayfanın sunucudan tekrar yüklenmesi gerekirdi.

ℹ️ Bilgi: DOM bir programlama dili değildir; sadece dillerin (JavaScript gibi) web sayfalarıyla etkileşime girmesini sağlayan bir standarttır.

HTML Elemanlarını Seçme Yöntemleri

DOM üzerinde herhangi bir işlem yapmadan önce, üzerinde değişiklik yapmak istediğimiz elemanı JavaScript’e tanıtmalıyız. Buna “eleman seçme” denir. Modern JavaScript’te en sık kullanılan seçim yöntemleri şunlardır:

Yöntem Açıklama Dönen Değer
getElementById ID özniteliğine göre seçim yapar. Tek bir eleman
querySelector CSS seçicisi kullanarak ilk eşleşeni seçer. Tek bir eleman
querySelectorAll CSS seçicisi ile tüm eşleşenleri seçer. Eleman listesi (NodeList)

getElementById: Sayfada benzersiz olan bir elemana ulaşmanın en hızlı yoludur. Örneğin, id değeri “baslik” olan bir etikete document.getElementById('baslik') koduyla ulaşabilirsiniz.

querySelector ve querySelectorAll: Bu yöntemler çok daha esnektir. CSS’te kullandığınız tüm seçicileri (nokta ile sınıflar, kare ile ID’ler) burada kullanabilirsiniz. Eğer sayfadaki tüm butonları seçmek istiyorsanız document.querySelectorAll('button') komutunu kullanmanız yeterlidir.

💡 İpucu: Performans açısından, sadece tek bir elemana ihtiyacınız varsa getElementById kullanmak, karmaşık CSS seçicileri kullanmaktan biraz daha hızlıdır.

İçerik ve Stil Manipülasyonu

Elemanı seçtikten sonra sıra ona müdahale etmeye gelir. En yaygın işlemlerden biri elemanın içindeki metni veya HTML kodunu değiştirmektir. Bunun için textContent ve innerHTML özelliklerini kullanırız. textContent sadece düz metin eklerken, innerHTML içine yeni HTML etiketleri eklemenize izin verir.

Stil müdahalesi ise sitenizin görünümünü anlık olarak değiştirmek için kullanılır. Bir butona basıldığında arka planın kararması veya bir metnin kırmızıya dönmesi bu yöntemle yapılır. JavaScript’te element.style.color = 'red' gibi doğrudan müdahale edebileceğiniz gibi, en doğru yöntem CSS sınıflarını (class) yönetmektir.

⚠️ Dikkat: innerHTML kullanırken dikkatli olun! Kullanıcıdan gelen verileri doğrudan bu özellikle sayfaya basmak, XSS (Cross-Site Scripting) adı verilen güvenlik açıklarına yol açabilir. Güvenli içerik değişimi için her zaman textContent tercih edilmelidir.

ClassList ile Dinamik Sınıf Yönetimi

Bir elemanın görünümünü değiştirmek için doğrudan stil vermek yerine, önceden CSS’te tanımlanmış bir sınıfı eklemek veya çıkarmak çok daha profesyonel bir yaklaşımdır. classList.add(), classList.remove() ve classList.toggle() metodları bu iş için biçilmiş kaftandır. Özellikle toggle metodu, eğer sınıf varsa siler, yoksa ekler; bu da “gece modu” (dark mode) gibi özellikler için idealdir.

Olay İzleyiciler (Event Listeners)

DOM manipülasyonunun kalbi olaylardadır. Bir kullanıcı sayfada bir yere tıkladığında, klavyeden bir tuşa bastığında veya sayfayı aşağı kaydırdığında bir “olay” tetiklenir. JavaScript ile bu olayları dinleyebilir ve karşılığında bir fonksiyon çalıştırabiliriz. Bunun için addEventListener metodu kullanılır.

📖 Örnek: Tıklama Olayı

Aşağıdaki kod parçası, bir butona tıklandığında ekrana bir uyarı mesajı çıkarır:
const buton = document.querySelector('#giris-butonu');
buton.addEventListener('click', function() {
  alert('Butona başarıyla tıklandı!');
});

Olay izleyiciler sadece tıklama ile sınırlı değildir. mouseover (fare üzerine geldiğinde), submit (form gönderildiğinde) veya input (metin kutusuna yazı yazıldığında) gibi onlarca farklı olay türü mevcuttur. Bu sayede kullanıcıyla gerçek zamanlı bir iletişim kurulur.

Yeni Eleman Oluşturma ve DOM’a Ekleme

Bazen sayfada var olan bir şeyi değiştirmek yetmez, tamamen yeni bir eleman oluşturmamız gerekir. Örneğin, bir alışveriş listesi uygulamasında kullanıcı yeni bir ürün eklediğinde, DOM’da yeni bir liste öğesi (li) oluşturulmalıdır. Bu işlem document.createElement() ile başlar ve appendChild() veya prepend() ile sayfaya yerleştirilir.

Bir elemanı silmek istediğimizde ise remove() metodunu kullanırız. Modern JavaScript ile bu işlemler oldukça basitleşmiştir. Eskiden bir elemanı silmek için önce babasına (parent) gitmek gerekirken, artık doğrudan seçilen eleman üzerinden silme işlemi yapılabilmektedir.

Canlı Uygulama Örnekleri

Teorik bilgileri pratiğe dökmek, konuyu anlamanın en iyi yoludur. İşte günlük hayatta sıkça karşılaşabileceğiniz iki farklı DOM manipülasyonu senaryosu:

1. Basit Sayaç Uygulaması

Bir arttırma ve bir azaltma butonu ile ekrandaki sayıyı değiştirebilirsiniz. Burada süreç şöyledir: Önce sayının yazdığı etiketi ve butonları seçersiniz. Ardından butonlara tıklama olayları eklersiniz. Her tıklamada bir değişkeni günceller ve bu değişkenin yeni değerini textContent ile ekrana yansıtırsınız.

2. Dinamik Liste Yönetimi

Bir giriş kutusu (input) ve bir ekle butonu düşünün. Kullanıcı kutuya bir şeyler yazıp ekle dediğinde, JavaScript ile yeni bir li oluşturulur, kullanıcının yazdığı metin bu elemana atanır ve mevcut ul listesinin sonuna eklenir. Bu, yapılacaklar listesi (To-Do List) uygulamalarının temel mantığıdır.

💡 İpucu: DOM manipülasyonu yaparken “Reflow” ve “Repaint” kavramlarına dikkat edin. Çok fazla elemanı tek tek eklemek yerine, önce sanal bir alanda (DocumentFragment) toplayıp sonra tek seferde sayfaya eklemek performansı artırır.

DOM Gezinme (Traversing)

Bazen bir elemanı doğrudan ID veya sınıf ile seçemezsiniz. Bu durumlarda, bildiğiniz bir elemandan yola çıkarak onun komşularına, çocuklarına veya ebeveynine ulaşmanız gerekir. Buna DOM’da gezinme denir. parentElement ile bir üst düğüme, children ile alt öğelere, nextElementSibling ile ise bir sonraki kardeş öğeye erişebilirsiniz.

Bu yöntem özellikle tablolarda veya iç içe geçmiş listelerde çalışırken hayat kurtarıcıdır. Örneğin, tıklanan bir silme butonunun ait olduğu satırı (tr) bulup o satırı komple silmek için this.parentElement yapısını kullanmak oldukça yaygındır.

Öğrendiklerinizi Pekiştirin

DOM manipülasyonu, pratik yaptıkça elinizin alışacağı bir beceridir. Sadece okumakla kalmayıp, kendi tarayıcınızın konsolunu (F12) açarak üzerinde bulunduğunuz sayfanın başlıklarını veya renklerini değiştirmeyi deneyebilirsiniz. JavaScript’in sunduğu bu güç, size internet dünyasında istediğiniz her şeyi inşa etme imkanı verir.

✏️ Kendinizi Test Edin
  1. JavaScript ile bir elemanın arka plan rengini değiştiren kod satırı nedir?
  2. Bir HTML elemanının içindeki metni güvenli bir şekilde değiştirmek için hangi özellik kullanılır?
  3. Aynı sınıfa sahip 5 farklı butonu tek seferde seçmek için hangi metod kullanılmalıdır?
  4. Bir sınıfa (class) sahip olup olmadığını kontrol eden classList metodu hangisidir?
  5. Yeni bir HTML elemanı oluşturmak için kullanılan temel JavaScript fonksiyonu nedir?
📝 Konu Özeti
  • DOM, HTML belgelerinin nesneleştirilmiş bir haritasıdır.
  • Eleman seçimi için querySelector en modern ve esnek yöntemdir.
  • Stil değişikliklerinde classList kullanmak CSS ve JS ayrımı için en sağlıklı yoldur.
  • addEventListener, kullanıcı etkileşimlerini yakalamamızı sağlar.
  • Dinamik içerik eklemek için createElement ve appendChild ikilisi kullanılır.

DersMerkezi.net.tr’nin yazarı, eğitim alanında yıllara dayanan deneyime sahip bir uzmandır ve öğrencilerin öğrenme sürecini desteklemeyi hedefler. Matematik, fen bilimleri, tarih, dil ve edebiyat başta olmak üzere birçok ders alanında içerik üretir ve konuları sade, anlaşılır ve adım adım rehberler halinde sunar.

Yorum Yap