HTML’i değiştirme
Sayfada duran feribot fişinde tekne adı Gull, saat 09:10, not ise Boarding. HTML değiştirmek, elindeki öğenin içine yeni içerik yazmaktır. boat.textContent = "Heron" Heron sözcüklerini olduğu gibi koyar. note.textContent = "<em>Late</em>" bu karakterleri gösterir ve note.querySelector("em") değeri null olur. note.innerHTML = "<em>Late</em>" metni Late olan bir em kurar. Bundan sonra note.textContent Late okunur, note.innerHTML ise etiketleri hâlâ taşır. İkinci yazma, note.innerHTML = "Dock 2", o em öğesini siler. note.insertAdjacentHTML("beforeend", " <span>gate B</span>") Dock 2’yi bırakır ve gate B’yi ekler; not Dock 2 gate B olur. Saate bir şey atanmaz, o yüzden 09:10 kalır.
Yazmak, yeniden aramak değil
Önceki sayfa bir düğümü bulma yollarını yan yana koydu. Bu sayfa bir koleksiyon saymaz, bir indis okumaz ve parentElement üzerinde yürümez. getElementById yalnızca fişi verir. Ders, atadığın değerdir.
Her yazma notta ne bırakır
Not Boarding ile başlar. Satırları sırayla oku. Her atama notu ya değiştirir ya da uzatır.
📊 Her yazma notta ne bırakır
| Yazma | Ne görürsün | Ne kalır | Kolay karışan |
|---|---|---|---|
textContent = "Heron" teknede |
Heron | bir metin düğümü | adı Heron olan bir öğe |
textContent = "<em>Late</em>" |
<em>Late</em> karakterleri |
hiç em öğesi yok |
gerçek bir em |
innerHTML = "<em>Late</em>" |
Late | bir em |
etiketlerin textContent içinde kalması |
innerHTML = "Dock 2" |
Dock 2 | em gitti |
em öğesinin Dock 2 yanında durması |
insertAdjacentHTML("beforeend", " <span>gate B</span>") |
Dock 2 gate B | Dock 2 artı bir span |
Dock 2’yi silen innerHTML |
textContent bir dizgi saklar ve etiketleri çözümlemez. innerHTML etiketleri çözümler ve öğede duran her çocuğu atar. insertAdjacentHTML da etiketleri çözümler, ama beforeend yeni düğümleri mevcut içeriğin sonuna koyar. Gişede yazılan tekne adı textContent içine girer. Aynı dizgi innerHTML olursa küçüktür işareti işaretleme sayılır.
Yazmadan önce fişi oku
Dosya üç değerle açılır. Henüz bir atama yoktur.
console.log(document.getElementById("boat").textContent);
console.log(document.getElementById("when").textContent);
console.log(document.getElementById("note").textContent);
Kayıtlar Gull, 09:10 ve Boarding olur. Saat ayrı bir paragraftır. Sonraki yazmalar when öğesine dokunmaz.
Sözcük sözcük kalır
textContent her çocuğu tek bir metin düğümüyle değiştirir. Etikete benzeyen karakterler karakter olarak kalır.
let boat = document.getElementById("boat");
let note = document.getElementById("note");
boat.textContent = "Heron";
note.textContent = "<em>Late</em>";
console.log(boat.textContent);
console.log(note.textContent);
console.log(note.querySelector("em"));
İlk satır Heron. İkinci satır <em>Late</em> karakterleri. Üçüncü satır null. Not, etiketi metin olarak gösterir; öğe kurmaz.
innerHTML öğeyi kurar
Aynı karakterleri innerHTML ile ver. Ayrıştırıcı dizgiyi düğümlere çevirir ve notun içindekini değiştirir.
let note = document.getElementById("note");
note.innerHTML = "<em>Late</em>";
console.log(note.textContent);
console.log(note.innerHTML);
console.log(note.querySelector("em") === null);
İlk satır Late. İkinci satır <em>Late</em>, çünkü innerHTML işaretlemeyi etiketlerle birlikte döndürür. Üçüncü satır false: em duruyor, yani null değil. Görünen sözcükler ile işaret dizgisi aynı öğenin iki okumasıdır.
Sonraki innerHTML o em öğesini siler
Yeni bir innerHTML değeri notun tamamını değiştirir. em yeni metnin yanında kalmaz.
let note = document.getElementById("note");
note.innerHTML = "Dock 2";
console.log(note.textContent);
console.log(note.querySelector("em"));
İlk satır Dock 2. İkinci satır null. Boarding zaten gitmişti. Bu yazma em öğesini de götürür.
gate B ekle, Dock 2 kalsın
insertAdjacentHTML("beforeend", ...) bir parçayı çözümler ve sona koyar. Bu dizgi bir boşlukla başlar; iki parça iki sözcük olarak kalır. Başka konumlar da vardır. Bu sayfa yalnız beforeend kullanır.
let note = document.getElementById("note");
note.insertAdjacentHTML("beforeend", " <span>gate B</span>");
console.log(note.textContent);
console.log(note.querySelector("span").textContent);
İlk satır Dock 2 gate B. İkinci satır gate B. Dock 2 notun içinde durur. Aynı span dizgisini innerHTML ile atamak Dock 2’yi silerdi.
Fişin altında bir satır
Betik body sonundadır, fiş sayfada varken. Dock 2, em öğesinin yerini almadan önce Late sözcüğünü saklar; sonra tekne adından, saklanan sözcükten ve gate B eklendikten sonraki nottan bir satır yazar.
<!DOCTYPE html>
<html>
<head>
<title>changing html — page</title>
</head>
<body>
<article id="slip">
<h2 id="boat">Gull</h2>
<p id="when">09:10</p>
<p id="note">Boarding</p>
<p id="line">…</p>
</article>
<script>
let boat = document.getElementById("boat");
let note = document.getElementById("note");
boat.textContent = "Heron";
note.innerHTML = "<em>Late</em>";
let late = note.textContent;
note.innerHTML = "Dock 2";
note.insertAdjacentHTML("beforeend", " <span>gate B</span>");
document.getElementById("line").textContent = boat.textContent + " / " + late + " / " + note.textContent;
</script>
</body>
</html>
Satır Heron / Late / Dock 2 gate B olur. Saat hâlâ 09:10 okunur. Satırdaki Late, silinmeden önce saklanan sözcüktür. Notun kendisi artık Late demez. Sonraki sayfa bu tür öğelerin CSS değerini değiştirir; onları bulmak için yeni bir yol getirmez.
Fişi denetle
- Üç başlangıç metnini yazdır; Gull, 09:10 ve Boarding bekle
- Tekneyi Heron yap, notu em karakterlerine eşitle; o dizgiyi ve null bir em bekle
- innerHTML değerini em dizgisi yap; textContent olarak Late, etiketli innerHTML ve null olmayan bir em bekle
- innerHTML değerini Dock 2 yap ve em için null bekle
- span öğesini beforeend ile ekle; Dock 2 gate B, sonra span metni gate B bekle
- Satırı oku: Heron / Late / Dock 2 gate B; saati oku: 09:10
Bu fişteki kaçışlar
Sayfa yine açılır. Atama yanlış türde bir değer yazmıştır.
- Gişede yazılan adı
innerHTMLiçine koymak;<işaretleme olur textContent = "<em>Late</em>"ifadesinin biremkurmasını beklemek- em yazısından sonra
textContentokuyup o dizgide etiket beklemek innerHTMLyine atayıpemöğesinin kalmasını beklemek- gate B’yi
innerHTMLile ekleyip Dock 2’yi kaybetmek - Baştaki boşluğu atmak; not
Dock 2gate Bolur - Burada
stylevermek; sonraki sayfa CSS değiştirir - Burada
createElementçağırmak; daha sonraki bir sayfa yeni düğüm kurar
Bunları götür
textContentdüz metin yazar, etiket çözümlemezinnerHTMLetiketleri çözümler ve her çocuğu değiştirir- em yazısından sonra
textContentLate olur,innerHTMLetiketleri hâlâ taşır - İkinci bir
innerHTMLatamasıemöğesini siler insertAdjacentHTML("beforeend", ...)işaretleme ekler ve Dock 2 kalır- Saat 09:10 kalır, çünkü ona bir şey atanmaz
- Satır Heron / Late / Dock 2 gate B olur
🧠 Bilginizi Test Edin
Bilginizi Test Edin
Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör
📝 Talimatlar
- Her soruyu dikkatle okuyun
- Her soru için en iyi cevabı seçin
- Quiz'i istediğiniz kadar tekrar alabilirsiniz
- İlerlemeniz üstte gösterilecek