DOM HTML-in brauzerdəki obyekt təqdimatıdır. Element və mətn düyünləri ağacda əlaqəlidir. document.querySelector CSS selektoruna uyğun ilk elementi, tapmadıqda null qaytarır. Kodu sənəd hazır olanda işə sal: ayrıca skriptdə defer istifadə edə bilərsən.
<ul id="products"></ul>
<script>
const list = document.querySelector('#products');
if (list) {
const item = document.createElement('li');
item.textContent = 'Yeni məhsul';
list.append(item);
// item.remove(); // əlavə edilmiş elementi silər
}
</script>
Nümunə
Yaratmaq və dəyişmək
createElement hələ sənədə daxil olmayan element yaradır. append, prepend, before və after onu lazımi yerə əlavə edir. remove sənəddən çıxarır. textContent mətni mətn kimi yazır; innerHTML isə HTML emal edir və etibarsız istifadəçi məzmunu ilə təhlükəlidir.
Element seçilməyibsə onun xassəsini dəyişməyə çalışma. DOM-un dəyişməsi ilkin HTML faylını diskdə dəyişmir; cari sənəd vəziyyətini yeniləyir. Məlumatı hansı massivdən göstərdiyini ayrıca saxla ki, interfeys ilə məlumat məntiqi qarışmasın.
Əlavə qeydlər və mənbələr
DOM sənədi əlaqəli obyektlər ağacı kimi təqdim edir. querySelector ilə element seç, createElement ilə yenisini yarat, mətnini textContent ilə ver, sənədə əlavə et və remove ilə sil.
Niyə vacibdir?
DOM HTML sənədinin proqramlaşdırma vasitəsilə işləyə bildiyin təqdimatıdır.
Bu nümunədə elementlərin HTML-də mövcud olduğu fərz edilir. Skripti defer ilə yüklə və ya sənədin sonuna yerləşdir. İstifadəçinin yazdığını innerHTML ilə göstərmək əvəzinə mətn üçün textContent seç.
Kolleksiyalar və DOM ağacı
querySelector uyğun ilk elementi və ya null, querySelectorAll isə statik NodeList qaytarır. children element övladlarının canlı HTMLCollection toplusudur. parentElement, nextElementSibling və firstElementChild ilə ağacda hərəkət edərkən elementin olmamasını da nəzərə al.
Mətn, seçim və textarea dəyəri üçün value, checkbox üçün checked oxu. label sahəni adlandırır; placeholder onu əvəz etmir. name atributu FormData daxilində açarı müəyyən edir.
const signup = document.querySelector('#signup');
if (signup instanceof HTMLFormElement) {
signup.addEventListener('submit', event => {
event.preventDefault();
const data = new FormData(signup);
console.log(data.get('email'));
});
}
Nümunə
input yazı dəyişdikcə, change isə dəyişiklik təsdiqləndikdə baş verir; focus və blur fokusun giriş-çıxışıdır. Qlobal dinləyici əlavə edəndə eyni funksiya istinadını saxla ki, lazım olduqda removeEventListener ilə silə biləsən. Forma validasiyasının brauzer hissəsi server yoxlamasını əvəz etmir.
Mövzu üzrə praktika
Tapşırıq siyahısı yarat: yeni tapşırıq əlavə etmək, tamamlanmış işarələmək və silmək mümkün olsun.
Boş tapşırıq qəbul edilmir, Enter ilə əlavə etmək olur və istifadəçi mətni HTML kimi icra edilmir.