JavaScript виконання коду JavaScript підключення зовнішнього файлу JavaScript console.log JavaScript змінні і константи JavaScript типи даних JavaScript операції зі змінними JavaScript перетворення даних JavaScript масиви JavaScript умовні конструкції JavaScript цикли JavaScript функції JavaScript область видимості змінних JavaScript замикання і функції IIFE JavaScript Паттерн Модуль JavaScript рекурсивні функції JavaScript перевизначення функцій JavaScript hoisting JavaScript передача параметрів за значенням і за посиланням JavaScript стрілочні функції JavaScript ООП Object JavaScript ООП вкладені об'єкти і масиви в об'єктах JavaScript ООП перевірка наявності і перебір методів і властивостей JavaScript ООП об'єкти у функціях JavaScript ООП конструктори об'єктів JavaScript ООП розширення об'єктів. prototype JavaScript ООП інкапсуляція JavaScript ООП Функція як об'єкт. Методи call і apply JavaScript ООП спадкування JavaScript ООП Ключове слово this JavaScript ООП Object destructuring JavaScript ООП класи JavaScript ООП Date. Робота з датами JavaScript Об'єкт Math. математичні операції JavaScript Об'єкт Array. Робота з масивами JavaScript ООП об'єкт Number JavaScript String JavaScript String Об'єкт RegExp. Регулярні вирази JavaScript String Регулярні вирази в методах String JavaScript String Синтаксис регулярних виразів JavaScript Робота з браузером і BOM JavaScript діалогові вікна JavaScript Історія браузера. об'єкт history JavaScript об'єкт location JavaScript об'єкт navigator JavaScript таймери JavaScript DOM Введення JavaScript DOM Об'єкт document. Пошук елементів JavaScript DOM Властивості об'єкта document JavaScript DOM Об'єкт Node. Навігація по DOM JavaScript DOM Створення, додавання і видалення елементів веб-сторінки JavaScript DOM Об'єкт Element. управління елементами JavaScript DOM Зміна стилю елементів JavaScript події. Введення в обробку подій. JavaScript події обробники JavaScript події. об'єкт Event JavaScript події. поширення подій JavaScript події миші JavaScript події клавіатури JavaScript FORMS. Форми і їх елементи JavaScript FORMS. Кнопки JavaScript FORMS. текстові поля JavaScript FORMS. Прапорці та перемикачі JavaScript FORMS. Список select JavaScript JSON JavaScript зберігання даних. cookie JavaScript зберігання даних. Web Storage JavaScript Collection. Ітератори JavaScript Collection. Генератори JavaScript Collection. Множина Set JavaScript Collection. Map JavaScript Collection. WeakSet і WeakMap JavaScript AJAX. XMLHttpRequest JavaScript AJAX. Відправка даних JavaScript AJAX. Promise в Ajax-запитах

JavaScript DOM Об'єкт Element. управління елементами


Крім методів і властивостей об'єкта Node в JavaScript ми можемо використовувати властивості і методи об'єктів Element . Важливо не плутати ці два об'єкти: Node і Element . Node представляє всі вузли веб-сторінки, в той час як об'єкт Element представляє безпосередньо тільки html-елементи. Тобто об'єкти Element - це фактично ті ж самі вузли - об'єкти Node , у яких тип вузла (властивість nodeType ) дорівнює 1.

Одною з ключових властивостей об'єкта Element є властивість tagName , яка повертає тег елемента. Наприклад, отримаємо всі елементи, які є на сторінці:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
</head>
<body>

<div class="article">
<h3>Заголовок статьи</h3>
<p>Перший абзац</p>
<p>Другий абзац</p>
</div>

<script>

function getChildren(elem){
     
    for(var i in elem.childNodes){
     
        if(elem.childNodes[i].nodeType===1){
         
            console.log(elem.childNodes[i].tagName);
            getChildren(elem.childNodes[i]);
        }
    }
}

var root = document.documentElement;
console.log(root.tagName);
getChildren(root);

</script>

</body>
</html>

Тут спочатку отримуємо кореневі елементи <html> і потім за допомогою рекурсивної функції getChildren отримуємо всі вкладені елементи:


Властивості innerText і innerHTML

Для отримання або установки текстового вмісту елемента ми можемо використовувати властивість innerText , а для отримання або установки коду html - властивість innerHTML :

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
</head>
<body>

<div class="article">
<h3>Заголовок статьи</h3>
<p>Перший абзац</p>
<p>Другий абзац</p>
</div>

<script>

var articleDiv = document.querySelector("div.article");

console.log(articleDiv.innerText);
console.log("_______________________");
console.log(articleDiv.innerHTML);

</script>
</body>
</html>

Треба відзначити, що властивість innerText багато в чому аналогічна властивості textContent . Тобто такі виклики будуть рівноцінні:

var pElement = document.querySelectorAll("div.article p")[0];
pElement.innerText = "hello";
pElement.textContent = "hello";

Установка коду html у елемента:

var articleDiv = document.querySelector("div.article");
articleDiv.innerHTML ="<h2>Hello World!!!</h2><p>bla bla bla</p>";

Методи об'єкти Element

Серед методів об'єкта Element можна відзначити методи управління атрибутами:

  • getAttribute (attr) : повертає значення атрибута attr

  • setAttribute (attr, value) : встановлює для атрибута attr значення value. Якщо атрибута немає, то він додається

  • removeAttribute (attr) : видаляє атрибут attr і його значення

Робота з атрибутами:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
</head>
<body>

<div class="article" style="color:red;">
<h3>Заголовок статьи</h3>
<p>Перший абзац</p>
<p>Другий абзац</p>
</div>

<script>

var articleDiv = document.querySelector("div.article");

// отримуємо атрибут style
var styleValue = articleDiv.getAttribute("style");
console.log("До зміни атрибута: " + styleValue);

// видаляємо атрибут
articleDiv.removeAttribute("style");

// додаємо заново атрибут style
articleDiv.setAttribute("style", "color:blue;");
styleValue = articleDiv.getAttribute("style");

console.log("Після зміни атрибута: " + styleValue);

</script>

</body>
</html>

Розміри і позиція елементів

Елементи мають ряд властивостей, які дозволяють визначити розмір елемента. Але важливо розуміти різницю між усіма цими властивостями

Властивості offsetWidth і offsetHeight визначають відповідно ширину і висоту елемента в пікселях. В ширину і висоту включається межа елемента.

Властивості clientWidth і clientHeight також визначають ширину і висоту елемента в пікселях, але вже без урахування кордону:

<!DOCTYPE html>
<html>
<head>

    <meta charset="utf-8" />

    <style>
    #rect {
        width: 100px;
        height: 100px;
        background: #50c878;
        border: 3px solid silver;
    }
    </style

</head>
<body>

<div id="rect"></div>

<script>
   var rect = document.getElementById("rect");

   console.log("offsetHeight: " + rect.offsetHeight);
   console.log("offsetWidth: " + rect.offsetWidth);
   console.log("clientHeight: " + rect.clientHeight);
   console.log("clientWidth: " + rect.clientWidth);
</script>

</body>
</html>

Оскільки у блоку div визначена межа в 3 пікселі, то в порівнянні з clientHeight / clientWidth до offsetHeight / offsetWidth додає по 6 пікселів.

Для визначення позиції елемента найбільш ефективним способом є метод getBoundingClientRect () .

Цей метод повертає об'єкт з властивостями top, bottom, left, right , які вказують на зміщення елемента щодо верхнього лівого кута браузера:

var rect = document.getElementById("rect");
var clientRect  = rect.getBoundingClientRect();

console.log("top: " + clientRect.top);
console.log("bottom: " + clientRect.bottom);
console.log("left: " + clientRect.left);
console.log("right: " + clientRect.right);

Наш партнер:
beta test mp3 playlist downloader