Элемент өөрчлөх
Элементийг олсны дараа хийж болох зүйл маш олон — текст солих, HTML өөрчлөх, attribute тохируулах, style нэмэх, шинэ элемент үүсгэх, байгааг устгах. Энэ хичээлд эдгээрийг бүгдийг жишээ кодоор нарийвчлан үзнэ.
Текст ба HTML агуулга
Элементийн дотоод агуулгыг өөрчлөх хоёр гол арга байна:
const гарчиг = document.querySelector("#гарчиг");
// textContent — аюулгүй, зөвхөн текст
гарчиг.textContent = "Шинэ гарчиг";
// innerHTML — HTML тэмдэглэгээ задлан харуулна
гарчиг.innerHTML = "Шинэ <em>гарчиг</em>";
Хэрэглэгчийн оруулсан текстийг innerHTML-д бичвэл аюул учруулах боломжтой — тиймдмл хэрэглэгчийн өгөгдөлд textContent ашиглаарай.
Attribute өөрчлөх
HTML attribute-уудыг (src, href, alt, disabled гэх мэт) JavaScript-ээр унших, тохируулж болно:
const зураг = document.querySelector("#баннер");
const холбоос = document.querySelector("#гол-холбоос");
// Attribute унших
console.log(зураг.getAttribute("src")); // /зураг/баннер.png
console.log(холбоос.getAttribute("href")); // https://...
// Attribute тохируулах
зураг.setAttribute("src", "/зураг/шинэ-баннер.png");
зураг.setAttribute("alt", "Шинэ баннер зураг");
// Товчлол — нийтлэг attribute-уудыг шууд бичиж болно
холбоос.href = "https://ulaanbaatar.app";
зураг.src = "/зураг/өөр.png";
setAttribute бүх attribute-д ажиллана; нийтлэг attribute-уудад шууд .href, .src гэх мэтээр хандаж болно.
disabled ба hidden
Маягтын элементийг идэвхгүй болгох, нуух зэрэг нийтлэг үйлдлүүд:
const товч = document.querySelector("#илгээх-товч");
const алдааны мэдэгдэл = document.querySelector("#алдаа");
// Товч идэвхгүй болгох
товч.disabled = true;
// Товч дахин идэвхжүүлэх
товч.disabled = false;
// Элемент нуух
алдааны мэдэгдэл.hidden = true;
// Элемент харуулах
алдааны мэдэгдэл.hidden = false;
Style ба classList
Style-г шууд тохируулахын оронд class ашиглах нь илүү цэвэр арга — CSS болон JavaScript-ийн үүргийг тусгаарлана:
const карт = document.querySelector(".карт");
// Class нэмэх
карт.classList.add("идэвхтэй");
карт.classList.add("сонгогдсон", "гэрэлтсэн"); // Олныг нэг дор нэмж болно
// Class хасах
карт.classList.remove("идэвхтэй");
// Байвал хас, байхгүй бол нэм (toggle)
карт.classList.toggle("харанхуй");
// Шалгах
console.log(карт.classList.contains("идэвхтэй")); // true эсвэл false
Шаардлагатай бол style-г шууд тохируулж болно — гэхдээ тусад нь class үүсгэх нь дээр:
карт.style.backgroundColor = "#1e293b";
карт.style.borderRadius = "8px";
карт.style.padding = "16px";
Шинэ элемент нэмэх
createElement ба appendChild хослолоор шинэ элементийг DOM-д нэмнэ:
// Шинэ жагсаалтын мөр үүсгэх
const шинэ мөр = document.createElement("li");
шинэ мөр.textContent = "Шинэ даалгавар";
шинэ мөр.classList.add("даалгавар-мөр");
// Жагсаалтад нэмэх
const жагсаалт = document.querySelector("#даалгавар-жагсаалт");
жагсаалт.appendChild(шинэ мөр); // Доор нэмнэ
// Эхэнд нэмэхийн тулд
жагсаалт.prepend(шинэ мөр);
// Тодорхой байрлалд нэмэх
const лавлах = document.querySelector("#тэмдэглэгдсэн");
жагсаалт.insertBefore(шинэ мөр, лавлах);
Элемент устгах
Хэрэггүй болсон элементийг DOM-оос устгаж болно:
const хуучин мэдэгдэл = document.querySelector("#мэдэгдэл");
// Шууд устгах
хуучин мэдэгдэл.remove();
Эсвэл эцэг элементээрээ дамжуулан:
const эцэг = document.querySelector("#жагсаалт");
const хүүхэд = document.querySelector("#жагсаалт li:last-child");
эцэг.removeChild(хүүхэд);
Дараагийн хичээлд:
Events — хэрэглэгч товч дарах, текст бичих, хулгана хөдлөх зэрэг үйлдлүүдэд хэрхэн хариу үйлдэл хийхийг үзнэ. DOM өөрчлөлт ба event хоёр нийлмэгц хуудас амьд болно.