JavaScript'te Eleman Alma Hatası
Bazen yeni başlayan programcılar, tek bir DOM elemanı almak için
querySelector yöntemi yerine
querySelectorAll yöntemini kullanarak hata yaparlar.
Bu hatanın karakteristik özelliklerine bir göz atalım. Bir paragrafımız olduğunu varsayalım:
<p>metin</p>
Bir programcı, bu paragrafın metnini almayı ve değiştirmeyi karar verdi. Bunun için, elemana bir referansı bir değişkene alırken yanlışlıkla doğru olmayan yöntemi kullandı:
let elem = document.querySelectorAll('p');
Daha sonra programcı paragrafın metnini değiştirmeye çalıştı. Ancak, paragrafın metni değişmedi:
elem.textContent = '!!!'; // işe yaramadı
Bu sırada konsolda herhangi bir hata görünmedi. Sebebi, geçerli bir işlemin yapılmış olması, ancak bunun tek bir eleman yerine bir grup üzerinde yapılmış olmasıdır. Ve bir grup elemanın metnini okumak veya değiştirmek, basitçe bu şekilde mümkün değildir - sadece onları bir döngü ile tek tek her bir elemana erişerek yapılabilir.
Hata Nasıl Tespit Edilir
Bir programcının bu hatayı tespit etmek için nasıl hareket etmesi gerektiğine bakalım. Aslında, biraz deneyime sahip olunduğunda, karakteristik belirtileriyle kolayca tespit edilebilir.
Ancak, bunun olmadığını varsayalım. O zaman bir programcının hata arama sırasındaki
ilk eylemi, değişken değerlerini konsola yazdırmak olmalıdır. Onun durumunda
sadece bir değişken var - elem. Bu değişkenin değerini yazdırmalı ve
içinde ne olduğuna bakmalı:
let elem = document.querySelectorAll('p');
console.log(elem); // bir eleman değil, bir dizi yazdıracak
Konsolda, değişkende tek bir eleman değil, bir dizi olduğu hemen görülür. Bu, eleman almak için kullanılan yöntemde bir hata yapıldığına dair açık bir ipucu verir.