Son Dersler
Bilgisayar ve Kodlama

JavaScript ile DOM Manipülasyonu Nasıl Yapılır?

20 Nisan 2026 9 dk okuma Deniz Karay

JavaScript ile DOM manipülasyonu, bir web sayfasının içeriğini, yapısını ve stilini kullanıcı sayfayı yenilemeden dinamik olarak değiştirme işlemidir. Modern web geliştirme süreçlerinde JavaScript ile DOM manipülasyonu yapmak, kullanıcı etkileşimini artıran ve yaşayan arayüzler oluşturulmasını sağlayan en kritik beceridir. Bu yöntem sayesinde, bir butona tıklandığında yeni bir paragraf oluşturabilir, form verilerini anlık olarak kontrol edebilir veya karanlık mod gibi tasarım değişikliklerini saniyeler içinde uygulayabilirsiniz.

🎯 Bu Derste Öğrenecekleriniz
  • DOM (Document Object Model) kavramının ne olduğunu ve nasıl çalıştığını kavrayacaksınız.
  • JavaScript seçicileri ile HTML öğelerine nasıl ulaşacağınızı öğreneceksiniz.
  • HTML içeriğini ve CSS stillerini JavaScript ile değiştirmeyi deneyimleyeceksiniz.
  • Olay dinleyiciler (Event Listeners) kullanarak etkileşimli sayfalar tasarlayabileceksiniz.
  • Yeni HTML elemanları oluşturma, ekleme ve silme süreçlerine hakim olacaksınız.
📌 Bu Konuda Bilmeniz Gerekenler
  • DOM, HTML dokümanını bir nesne ağacı olarak temsil eder.
  • document.querySelector, modern projelerde en sık kullanılan seçim aracıdır.
  • İçerik değiştirmek için textContent ve innerHTML özellikleri kullanılır.
  • Etkileşimler için addEventListener fonksiyonu hayati önem taşır.
  • DOM manipülasyonu, web sitelerini statik bir belgeden dinamik bir uygulamaya dönüştürür.

DOM Nedir ve Neden Kullanılır?

DOM (Document Object Model), tarayıcı tarafından oluşturulan bir programlama arayüzüdür. Bir web sayfası yüklendiğinde, tarayıcı sayfanın HTML yapısını analiz eder ve her bir etiketi, niteliği ve metni birer nesne (object) haline getirir. Bu nesneler birbirine bağlı bir ağaç yapısı oluşturur. Bu yapıya “DOM Ağacı” denir.

JavaScript, bu ağaç yapısındaki dallara ve yapraklara (yani HTML etiketlerine) ulaşarak onları değiştirebilir. Örneğin, bir kullanıcının “Sepete Ekle” butonuna bastığını algılayan JavaScript, DOM üzerinden sepet sayısını günceller. Bu işlem, sayfanın tamamının sunucudan tekrar yüklenmesine gerek kalmadan gerçekleştiği için kullanıcı deneyimi çok daha hızlı ve akıcı olur.

ℹ️ Bilgi: DOM sadece JavaScript’e özgü bir kavram değildir. Ancak günümüzde DOM manipülasyonu en yaygın ve etkili şekilde JavaScript dili ile gerçekleştirilmektedir.

JavaScript ile HTML Elemanlarını Seçme

Bir HTML elemanı üzerinde değişiklik yapmadan önce, o elemanı JavaScript tarafında “yakalamanız” gerekir. Eskiden sınırlı yöntemler varken, günümüzde CSS seçicilerini kullanan çok güçlü fonksiyonlar bulunmaktadır. JavaScript ile eleman seçme süreci, kodunuzun performansını ve okunabilirliğini doğrudan etkiler.

En Çok Kullanılan Seçim Yöntemleri

JavaScript’te bir elemanı seçmek için document nesnesinin sunduğu metodları kullanırız. İşte her yazılımcının bilmesi gereken temel seçiciler:

  • getElementById: Sadece belirli bir ID’ye sahip elemanı seçer. Çok hızlı çalışır.
  • getElementsByClassName: Belirli bir sınıfa (class) sahip tüm elemanları bir liste olarak döndürür.
  • querySelector: CSS seçici mantığıyla (nokta, diyez, etiket adı) ilk eşleşen elemanı seçer.
  • querySelectorAll: CSS seçicisiyle eşleşen tüm elemanları bir NodeList (dizi benzeri yapı) olarak getirir.
Kod Örneği: Eleman Seçimi
// ID ile seçme
const baslik = document.getElementById('ana-baslik');

// Class ile seçme
const butonlar = document.getElementsByClassName('btn-kayit');

// Modern yöntem (CSS seçicisi)
const ilkParagraf = document.querySelector('.metin-alani p');
const tumListeler = document.querySelectorAll('ul li');
💡 İpucu: Eğer tek bir eleman seçecekseniz ve CSS sınıflarını kullanmak istiyorsanız querySelector kullanmak en modern ve esnek yaklaşımdır.

İçerik ve Stil Manipülasyonu Nasıl Yapılır?

Elemanı seçtikten sonra en sık yapılan işlem, o elemanın içindeki metni veya CSS özelliklerini değiştirmektir. Örneğin, bir hata mesajını kırmızı renkte göstermek veya bir kullanıcının adını ekrana yazdırmak bu kapsama girer. İçerik değiştirirken iki ana özelliğimiz vardır: textContent ve innerHTML.

textContent ve innerHTML Arasındaki Fark

İki özellik de metin değiştirmeye yarasa da aralarında güvenlik ve işlevsellik açısından büyük farklar vardır. textContent sadece düz metin olarak işlem yaparken, innerHTML yazdığınız HTML etiketlerini tarayıcıya yorumlatır.

Özellik HTML Yorumlama Güvenlik Seviyesi Kullanım Amacı
textContent Hayır (Düz Metin) Yüksek Güvenli metin güncellemeleri
innerHTML Evet (Etiketleri Çalıştırır) Düşük (XSS Riski) HTML yapısı ekleme
innerText Hayır (Görünür Metin) Orta Sadece görünür içeriği alma
⚠️ Dikkat: Kullanıcıdan gelen bir veriyi asla doğrudan innerHTML ile sayfaya basmayın. Bu durum, kötü niyetli kişilerin sitenize zararlı kodlar (XSS saldırıları) yerleştirmesine neden olabilir.

JavaScript ile CSS Değiştirme

Bir elemanın stilini değiştirmek için style özelliğini kullanırız. JavaScript’te CSS özellikleri yazılırken “camelCase” kuralı uygulanır. Yani CSS’deki background-color, JavaScript’te backgroundColor haline gelir.

Kod Örneği: Stil ve İçerik Değişimi
const kutu = document.querySelector('.kutu');

// İçerik değiştirme
kutu.textContent = 'Yeni İçerik Eklendi!';

// Stil değiştirme
kutu.style.backgroundColor = 'blue';

kutu.style.color = 'white';
kutu.style.padding = '20px';

Olay Dinleyiciler (Event Listeners) ile Etkileşim

Statik bir sayfayı dinamik hale getiren asıl güç, olaylardır. Bir kullanıcının butona tıklaması, faresini bir resmin üzerine getirmesi veya klavyeden bir tuşa basması birer “olay”dır (event). JavaScript bu olayları dinleyebilir ve gerçekleştiğinde belirli bir kod bloğunu çalıştırabilir.

addEventListener fonksiyonu, modern JavaScript dünyasında olayları yönetmek için kullanılan en sağlıklı yöntemdir. Bu fonksiyon iki temel parametre alır: Olayın adı (click, submit, vb.) ve olay gerçekleştiğinde çalışacak fonksiyon.

📖 Örnek: Tıklama Sayacı

Aşağıdaki kod, bir butona her tıklandığında ekrandaki sayıyı bir artırır. Bu, temel bir DOM manipülasyonu ve olay yönetimi örneğidir.

let sayac = 0;
const buton = document.querySelector('#artir-btn');
const sonuc = document.querySelector('#sonuc-ekrani');

buton.addEventListener('click', function() {
    sayac++;
    sonuc.textContent = 'Toplam Tıklama: ' + sayac;
    sonuc.style.fontWeight = 'bold';
});

Yeni Eleman Oluşturma ve Silme Süreçleri

Bazen sayfada halihazırda var olan bir elemanı değiştirmek yetmez; yeni elemanlar oluşturmanız veya eskileri kaldırmanız gerekir. Örneğin, bir “Yapılacaklar Listesi” uygulamasında her yeni görev eklendiğinde DOM’a yeni bir <li> elemanı eklenmesi gerekir.

Adım Adım Yeni Eleman Ekleme

  1. createElement: Yeni bir HTML etiketi oluşturun.
  2. textContent/innerHTML: Oluşturulan elemanın içine içerik ekleyin.
  3. appendChild/prepend: Elemanı sayfadaki bir ebeveyn (parent) elemanın içine yerleştirin.
Kod Örneği: Liste Elemanı Ekleme
const liste = document.querySelector('#gorev-listesi');
const yeniGorev = document.createElement('li');

yeniGorev.textContent = 'Kitap Oku';
yeniGorev.classList.add('liste-item'); // Class ekleme

liste.appendChild(yeniGorev); // Listenin sonuna ekler

Bir elemanı silmek isterseniz, remove() metodunu kullanabilirsiniz. Bu metod, çağrıldığı elemanı tamamen DOM ağacından kaldırır. Örneğin, bir butona tıklandığında ilgili satırın silinmesi bu yöntemle yapılır.

Sınıf (Class) Yönetimi ve ClassList Kullanımı

JavaScript ile doğrudan CSS özellikleri yazmak (style.color gibi) bazen kodun karmaşıklaşmasına neden olur. Bunun yerine, CSS tarafında hazırladığınız sınıfları JavaScript ile açıp kapatmak çok daha profesyonel bir yaklaşımdır. classList özelliği bu noktada imdadımıza yetişir.

  • classList.add(‘sinif-adi’): Elemana yeni bir sınıf ekler.
  • classList.remove(‘sinif-adi’): Eleman üzerindeki sınıfı siler.
  • classList.toggle(‘sinif-adi’): Sınıf varsa siler, yoksa ekler (Örn: Gece modu butonu).
  • classList.contains(‘sinif-adi’): Elemanın o sınıfa sahip olup olmadığını kontrol eder.
ℹ️ Bilgi: Toggle (aç-kapa) mantığı, modern arayüzlerdeki menülerin veya karanlık mod özelliklerinin temelini oluşturur.
✏️ Kendinizi Test Edin
  1. Bir elemanı ID’sine göre seçmek için hangi JavaScript metodu kullanılır?
  2. textContent ve innerHTML arasındaki en temel fark nedir?
  3. JavaScript’te “background-color” stil özelliği nasıl yazılır?
  4. Bir elemana tıklandığında işlem yapmak için hangi fonksiyon kullanılmalıdır?
  5. DOM’dan bir elemanı tamamen kaldırmak için hangi metod çağrılır?

Öğrendiklerinizi Pekiştirin

JavaScript ile DOM manipülasyonu yapmak başlangıçta karmaşık görünebilir ancak pratik yaptıkça mantığı oldukça basittir. Önce bir elemanı seçersiniz, sonra üzerinde bir değişiklik yaparsınız veya bir olay dinleyicisi eklersiniz. Bu döngü, web geliştirmenin temel taşını oluşturur.

Kendi projelerinizde küçük adımlarla başlayın. Örneğin, bir buton ile sayfanın arka plan rengini değiştiren basit bir uygulama yapın. Ardından, bir liste oluşturup bu listeye dinamik olarak eleman ekleyip çıkaran daha gelişmiş sistemler kurun. Unutmayın, en iyi kod yazarak öğrenilir. Hata yapmaktan çekinmeyin; tarayıcınızın konsol (Console) sekmesi size nerede hata yaptığınızı söyleyecektir.

📝 Konu Özeti
  • DOM: Web sayfasının nesne tabanlı haritasıdır.
  • Seçiciler: querySelector ve getElementById en yaygın kullanılanlardır.
  • İçerik: Güvenli metin değişiklikleri için textContent tercih edilmelidir.
  • Olaylar: addEventListener ile kullanıcı hareketleri yakalanır.
  • Dinamik Yapı: createElement ve remove ile sayfa yapısı anlık olarak değiştirilebilir.
  • ClassList: CSS sınıflarını yöneterek daha temiz kod yazılmasını sağlar.

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