JavaScript

https://jsfiddle.net/tjuw6vtg/13/

window

DOM

 

document

 

...

 

BOM

 

navigator

screen

location

frames

history

XMLHttpRequest

JavaScript

 

Object

Array

Function

 

...

 


window.open(‘https://www.google.ru’);

window.location = ‘https://www.google.ru’;

window.history.back();

window.history.go(-2);

DOM

document.body.style.color = “red”;

BOM

 

<html>

<header>

    <titel>Hello World!</title>

</header>

<body>

    <h1>Hello World!</h1>

    <footer>

Copyright

    </footer>

</body>

</html>

 

html

 

header

body

 

#text

#text

title

#text

Hello Wordl!

#text

h1

#text

Hello Wordl!

#text

footer

#text

Copyright

#text

Nodes

element node

text

node

<p>

    <p></p>

</p>

<p></p>

<p></p>

<p></p>

Возможности работы с DOM

  • получить абсолютно любой элемент дерева
  • воздействовать на его атрибуты, свойства и текст

$0.style.color = “red”;

Навигация по DOM

document

 

 

documentElement(html)

 

 

body

elem.firstChild

elem.lastChild

 

elem.firstElementChild === elem.children[0]
elem.lastElementChild === elem.children[elem.children.length - 1]

 

elem.firstChild                elem.lastChild

 

 

 

 

 

elem.firstElementChild === elem.children[0]
elem.lastElementChild === elem.children[elem.children.length - 1]

 

elem.childNodes

 

elem.previousSibling

elem.nextSibling

elem.parentElement

elem.parentElement

id

document.getElementId(‘slider’)

<div>

document.getElementsByTagName('div')

<input name="adress">

document.getElementsByName(‘adress’);

.header__contacts_phone

document.getElementsByClassName(‘header__contacts_phone’);

<div class="active">

document.querySelectorAll(‘div.active’);

document.querySelector(‘div.active’);

 

Метод

Поиск по

Поддержка

getElementById

id

везде

getEmenetByName

name

везде

getElementByTagName

tag

везде

getElementByClassName

class

кроме IE8-

querySelector

CSS-селектор

везде

querySelectorAll

CSS-селектор

везде

elem.matches(‘li’);  //true/false

elem.closes(‘div’); //коллекция элементов

var collection = document.getElementsByClassName('.active');

//любая выборка

for (var i = 0; i<collection.length; i++) {
    console.log(collection[i]); // элемент коллекции

};

 

 

var elem = document.getElementById(id);

 

for (var i = 0; i< elem.childNodes; i++) {
    console.log(elem.childNodes[i]); // дочерний элемент

};

 

 

Что дальше?

Работа с атрибутами

  • hasAttribute(nameOfAttribute)
  • getAttribute(nameOfAttribute)
  • setAttribute(nameOfAttribute, valueOfAttribute)
  • removeAttribute(nameOfAtribute)

var adressLink = document.getSelector(‘.main .main__socials_adress’);

 

if(adressLink.hasAttribute(‘href’)) {
    var href = adressLink.getAttribute(‘href’);

    window.opent(href, ‘_blank’);

    adressLink.setAttribute(‘href’, ‘htttp://www.google.ru’);

}

<div class="red" hidden></div>

 

document.querySelector('.red').removeAttribute('hidden');

 

 

<span class=”header__user_name” data-name=”Dariya Pushkarskaya”>Дарья</span>


elem.dataset.name; // Dariya Pushkarskaya

Работа с классами

  • className
  • classList

elem.className; //main container

elem.className = ‘main container active’;

 

ClassList

  • classList.contain(class)
  • classList.add/remove(class)
  • classList.toggle(class)

 

if (elem.classList.contain(‘show’)) {

    elem.classList.remove(‘show’);

    elem.classList..add(‘hidden’);

}

 

if (elem.classList.contain(‘hidden)) {

elem.classList.remove(‘hidden’);

    elem.classList..add(‘show’);

}

 

elem.classList.toggle(‘active’);

 

 

События

  • События мыши

  • События на элементах управления

  • События по нажатию клавиш клавиатуры

  • События документа

  • События CSS

События мыши

  • click

  • contextmenu

  • mouseover

  • mouserout

  • mousedown

  • mouseup
  • mousemove

События на элементах управления

  • submit

  • focus

События по нажатию клавиш

  • keydown

  • keyup

События документа

  • DOMContentLoaded

События CSS

  • transitioned

События CSS

  • transitioned

JavaScript

By d_pushkarskaya

JavaScript

  • 1,293