Hi everyone! I'm the author of code.mu :)
I'd love to chat with my non-Russian audience. I'm looking for your feedback on the site and the translation quality. Let's chat:)
2 of 17 menu

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.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet